我知道如何在一个查询中插入具有常量值的多行:
INSERT INTO table
VALUES
(1, 'a', 'x'),
(2, 'b', 'y'),
(3, 'c', 'z');
但我该如何有条件地这样做呢?我想确保只插入不存在的*行。甚至可以在一个查询中完成它吗?
* 当所有列与我们插入的列相同时,存在一行
答案 0 :(得分:2)
使用INSERT IGNORE INTO
代替INSERT INTO
。如果没有违反唯一键约束,前者只会插入行。
INSERT IGNORE INTO table
VALUES
(1, 'a', 'x'),
(2, 'b', 'y'),
(3, 'c', 'z');