MySQL:条件INSERT ... SELECT用于具有常量值的多行

时间:2012-04-13 23:20:56

标签: mysql select insert

我知道如何在一个查询中插入具有常量值的多行:

INSERT INTO table
VALUES
  (1, 'a', 'x'),
  (2, 'b', 'y'),
  (3, 'c', 'z');

但我该如何有条件地这样做呢?我想确保只插入不存在的*行。甚至可以在一个查询中完成它吗?

* 当所有列与我们插入的列相同时,存在一行

1 个答案:

答案 0 :(得分:2)

使用INSERT IGNORE INTO代替INSERT INTO。如果没有违反唯一键约束,前者只会插入行。

INSERT IGNORE INTO table
VALUES
  (1, 'a', 'x'),
  (2, 'b', 'y'),
  (3, 'c', 'z');