次のエラーが表示されます。
1452 - 子行を追加または更新できません: 外部キー制約が失敗します。
私はそれらを見つけて、参照を取り除こうとしました
alter table tillhör drop foreign key kat_id;
しかし、代わりにこのエラーが発生します:
#1025 - '.\recept\tillh@1ir' から '.\recept#sql2-1570-3cb' への名前変更エラー (errno: 152)。
私は何を間違っていますか?
次のエラーが表示されます。
1452 - 子行を追加または更新できません: 外部キー制約が失敗します。
私はそれらを見つけて、参照を取り除こうとしました
alter table tillhör drop foreign key kat_id;
しかし、代わりにこのエラーが発生します:
#1025 - '.\recept\tillh@1ir' から '.\recept#sql2-1570-3cb' への名前変更エラー (errno: 152)。
私は何を間違っていますか?
クエリを実行する前に
SET FOREIGN_KEY_CHECKS=0
完了したら 1 に設定します。
私は同じ問題に直面しています。この問題をクリアすることで解決します。つまり、子テーブルからすべてのデータを削除し、正常に完了しました。
これは、親テーブルにはない外部キーを持つデータが子テーブルに含まれている場合に発生します。つまり、Person (列 ID、名前、住所) とorder (列 ID、person_id、order_name) という 2 つのテーブルがある場合です。order.person_id は person.id の外部キーであり、 order テーブルには person テーブルに存在しない person_id が含まれています。
次のクエリを使用してこれを解決できます
Delete from order where person_id NOT IN (select id from person where person.id = order.person_id)