INSERT OR REPLACE
🟢 Python
投稿日: 2026年9月17日14:42
insert_query = """
INSERT OR REPLACE INTO users (id, name, email, age)
VALUES (?, ?, ?, ?)
"""
SQLiteでは、以下の3つの書き方はすべて同じ
-- 1. 標準的
INSERT OR REPLACE INTO users (id, name, email, age) VALUES (?, ?, ?, ?);
-- 2. 短縮形の書き方
REPLACE INTO users (id, name, email, age) VALUES (?, ?, ?, ?);
-- 3. PostgreSQL等に近い、衝突時の挙動を明記する書き方 (SQLite 3.24.0以降)
INSERT INTO users (id, name, email, age) VALUES (?, ?, ?, ?)
ON CONFLICT(id) DO UPDATE SET name=excluded.name, email=excluded.email, age=excluded.age;
CASCADE設定がある場合、の ON CONFLICT を使う
-- 1. 標準的
INSERT OR REPLACE INTO users (id, name, email, age) VALUES (?, ?, ?, ?);
-- 2. 短縮形の書き方
REPLACE INTO users (id, name, email, age) VALUES (?, ?, ?, ?);
-- 3. PostgreSQL等に近い、衝突時の挙動を明記する書き方 (SQLite 3.24.0以降)
INSERT INTO users (id, name, email, age) VALUES (?, ?, ?, ?)
ON CONFLICT(id) DO UPDATE SET name=excluded.name, email=excluded.email, age=excluded.age;
CASCADE設定がある場合、の ON CONFLICT を使う
No Comment