MySQL:如果存在外键,则插入

时间:2010-06-25 11:53:40

标签: mysql insert foreign-keys

我有一张包含大约2.000行的Excel表格,我想将其插入到我的数据库中。

问题是我想要插入2.000行的表有一个引用另一个表中的外键的列。不幸的是,很多查询都失败了,因为提供的外键值不存在。

我知道我可以忽略外键检查,但这不是我想要的。我不想忽略外键检查,我只是想要不执行错误的查询。

示例:

INSERT INTO test (id, value) VALUES (10, 20);  
INSERT INTO test (id, value) VALUES (20, 20);

第一个查询失败,因为TEST.id引用foobar.id且没有foobar.id = 10.但是,第二个查询可以正常工作,因为foobar.id = 20存在,但第二个查询获胜不会被执行,因为第一个已经失败了。

有没有办法在第一个查询中没有出错,我的其他查询仍会被执行?

我可以写一个PHP脚本,但我更喜欢这里的MySQL解决方案。

1 个答案:

答案 0 :(得分:6)

您可以更改为插入选择的结果,例如:

INSERT INTO test (id, value) 
SELECT foobar.id, 20
FROM foobar WHERE id = 10;
相关问题