尝试插入重复键时整个查询是否会失败?

时间:2010-10-15 18:06:12

标签: mysql

如果我有这样的查询:

INSERT INTO map
    SELECT 5, product_id FROM products WHERE price < 500 )

假设这尝试在地图表中插入300行。假设20个插入生成重复的键错误。是否会插入其他280行或整个查询是否会失败?

如果是这样,编写此查询的最佳方法是什么,以便插入非重复行并忽略重复项?

1 个答案:

答案 0 :(得分:3)

查询将在第一个重复键时失败。如果你想继续插入下一个用途

INSERT IGNORE INTO map (map_id, product_id)
SELECT  5, product_id FROM products WHERE price < 500

如果插入多行,请不要将查询放入VALUES()