8

phpMyAdminを使用してデータをエクスポートしましたが、データをインポートすると次のエラーが発生します。

#1452-子行を追加または更新できません:外部キー制約が失敗します

それに応じてデータを設定できますが、エラーは発生しません。しかし、これを行うためのより良い方法はありますか?phpMyAdminのいくつかのオプションを無効にしたり、SQLにクエリを追加したりするようなものですか?

4

2 に答える 2

26

問題は、pmaが挿入行の順序を気にしないことです。そのため、FK行がまだインポートされていないFKでテーブル行が挿入されることがあります。

これを解決するにはDisable Foreign Key Checks、PhpMyadminからエクスポートするときにチェックボックスを使用します。または、自分で設定します。

SET FOREIGN_KEY_CHECKS=0;

そして最後に:

SET FOREIGN_KEY_CHECKS=1;
于 2012-07-13T10:41:48.983 に答える
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-07-13T10:34:52.470 に答える