mysqlは外部リンクインデックスデータを削除します
親行を削除または更新できません:外部キー制約が失敗します問題の解決策
クエリ:DELETE FROM goods
WHERE goods_id
= '11'
エラーコード:1451
親行を削除または更新できません:外部キー制約が失敗します(webDB
。goods_properties_detail
、CONSTRAINT FK_rip_43
FOREIGN KEY (goods_id
)参照goods
(goods_id
))
上記は、レコードの特定のフィールドがInnoDB内の別のテーブルへの外部リンクとして使用されているためです。外部リンクは、削除操作中に自動的にチェックされます。
解決策1:最初に関連データを削除することを決定し、次に削除します(これは、ビジネスロジックに沿ったものであり、より安全です)。
解決策2:外部リンクをチェックせず、FOREIGN_KEY_CHECKS変数を設定します。
SET FOREIGN_KEY_CHECKS = 0;
DELETE FROM `goods` WHERE `goods_id` = '11'
削除後に設定
SET FOREIGN_KEY_CHECKS = 1;
ps:一意性チェックをオフにします
set unique_checks=0;
set unique_checks=1;