1

次のような複数行のインサートがあります。

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

最初の属性(1、4、7)が別のテーブルへの外部キーであり、この参照テーブルの値が「4」ではないと想定します。MySQLExeptionがエラーコード1452でスローされます。

例外:子行を追加または更新できません:外部キー制約が失敗します(dbName/tableName、CONSTRAINT idFOREIGN KEY(customer_id)REFERENCES referencedTablecustomer_id))

エラーの原因となった値を特定する方法はありますか?次のようなエラーメッセージをユーザーに表示したいと思います。

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

.NETmysqlコネクタを使用して挿入を実行しています。

ありがとう-

ジョナサン

4

1 に答える 1

0

1つのオプションは、最初に参照されるテーブルを照会することです。

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

よりクリーンな方法があるはずです...

于 2010-04-20T02:26:30.760 に答える