REPLACE INTO
插入或替换数据
语法
REPLACE INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...)说明
REPLACE 与 INSERT 类似,但如果主键或唯一索引冲突,会先删除旧行再插入新行。相当于"有则更新、无则插入",但与 INSERT ... ON DUPLICATE KEY UPDATE 不同,REPLACE 是先删后插。
参数
INTO 表名必填目标表名
(列1, 列2, ...)要插入的列列表
VALUES (...)必填插入的值列表,支持批量
示例
插入或替换
如果 id=1 已存在则删除后重新插入
REPLACE INTO users (id, name, email) VALUES (1, '新名称', 'new@example.com');批量替换
批量执行替换操作
REPLACE INTO settings (key, value) VALUES ('theme', 'dark'), ('lang', 'zh');与 ON DUPLICATE KEY UPDATE 对比
REPLACE 是先删后插(AUTO_INCREMENT 会变),ON DUPLICATE KEY 是原地更新
-- 推荐用这个(不改变自增 ID):
INSERT INTO users (id, name) VALUES (1, '新名称')
ON DUPLICATE KEY UPDATE name = VALUES(name);