2

クライアント、フィードバック、修理テーブルがあります。クライアントは多くのフィードバックを提供し、多くの修理を行うことができます。フィードバックテーブルで、clientid列(インデックスも追加)を作成し、clientsテーブルのclientid列(主キー)への外部キーを作成できます。

問題は、修理テーブルで同じことができないことです。repairsテーブル内にclientid列(インデックス付き)を作成し、それがclientsテーブル内のclientidと同じプロパティを持っている場合でも、次のようになります。

MySQLによると:ドキュメント

#1452-子行を追加または更新できません:外部キー制約が失敗します(ccsdb。、CONSTRAINT #sql-3f0_8e5_ibfk_1FOREIGN KEY(client_id)REFERENCES clientsclient_id)ON DELETE CASCADE ON UPDATE CASCADE)

4

1 に答える 1

0

そのエラー(Cannot add or update a child row: a foreign key constraint fails)はMySQLFKDocで参照されています

2つのテーブル間に参照を追加するには、条件が既存のデータに適合している必要があります。

つまり、と言うとtable1.id = table2.id、とのすべてのIDが一致する必要がtable1あります。table2

これを解決するには、一致しない行を削除または修正する必要があります。
例:

table1.id  |  table2.fk
   1       |       1      ok 
   2       |     null     error
   3       |       4      error if id 4 is not in table1
于 2012-05-27T12:41:32.630 に答える