由于 INSERT IGNORE ON DUPLICATE KEY UPDATE 是在 INSERT ON DUPLICATE KEY UPDATE 上做了些特殊处理,将不再单独详细介绍,而是放在同一小节中介绍...在上一步的 UPDATE 中,还需要处理以下场景,如下面这个 SQL:
CREATE TABLE t (i INT UNIQUE);
INSERT INTO t VALUES (1), (1) ON DUPLICATE...放弃插入,改成更新冲突的行,如果更新的值再次冲突
报错:INSERT ON DUPLICATE KEY UPDATE
不报错:INSERT IGNORE ON DUPLICATE KEY UPDATE...INSERT INTO t VALUES
(1, 1, 1, 1, 1),
(2, 2, 2, 2, 2),
(3, 3, 3, 3, 3),
(4, 4, 4, 4, 4);
REPLACE...INTO t VALUES (1, 2, 3, 4, 5);
SELECT * FROM t;
i j k l m
1 2 3 4 5
在执行完之后,实际影响了 5 行数据。