2010-04-20 64 views
1

我有一個多行插入,看起來像:確定哪些多行插入的值失敗外鍵約束

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

假設第一屬性(1,4,7)爲外鍵到另一個表,並假定這個引用的表沒有值'4'。一個MySQLExeption被拋出,錯誤代碼1452

例外:不能添加或更新子行,外鍵約束失敗(dbName/tableName,約束id外鍵(customer_id)參考文獻referencedTablecustomer_id))

有一種確定哪個值導致錯誤的方法?我很樂意給我的用戶的錯誤消息是這樣說:

Error: '4' does not exist in the referenced table. 

我使用的.NET MySQL連接到執行插入。

Thanks-

喬納森

回答

0

一種選擇是首先查詢引用表。

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

看來,應該有一個更清潔的方式...