示例
示例
REPLACE INTO users (id, name) VALUES (1, 'alice');
-- 等价于:DELETE FROM users WHERE id = 1; INSERT INTO users (id, name) VALUES (1, 'alice');| 行为 | 冲突行先删后插:触发器、级联外键、自增计数器都会受影响 |
|---|---|
| 缺列 | 未列出的列被重置为默认值(UPDATE 不会) |
| 建议 | 大多数场景应改用 ON DUPLICATE KEY UPDATE 保留原值 |
外键 ON DELETE CASCADE 时,REPLACE 删除父行会连带删掉子表数据,属于容易造成事故的写法。