rmdir.cn

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);