识别多行插入的哪个值未通过外键约束

时间:2010-04-20 02:20:59

标签: mysql mysql-connector

我有一个多行插入,看起来像:

insert into table VALUES
(1, 2, 3),
(4, 5, 6),
(7, 8, 9);

假设第一个属性(1,4,7)是另一个表的外键,并假设此引用的表没有值“4”。抛出MySQLExeption,错误代码为1452.

EXCEPTION:无法添加或更新子行:外键约束失败(dbName/tableName,CONSTRAINT id FOREIGN KEY(customer_id)REFERENCES referencedTable({{1 }}))

有没有办法确定哪个值导致错误?我很乐意给我的用户一个错误信息,上面写着:

customer_id

我正在使用.NET mysql连接器来执行插入。

谢谢 -

乔纳森

1 个答案:

答案 0 :(得分:0)

一个选项可能是首先查询引用的表。

select id from referencedTable where id not in (1, 4, 7)

似乎应该有一种更清洁的方式......