DBAtlas · データベース運用アトラス

1452: Cannot add or update a child row: a foreign key constraint fails(子行を追加/更新できない: 外部キー制約違反)

MySQL

意味

子行を挿入または更新しているが、その行が指す親キー値が参照先テーブルに存在しないため、外部キー制約が拒否している。

原因

存在しない親キーを参照する INSERT/UPDATE、誤った順序でのデータロード (子が先)、または削除された親行。

対処方法

先に親行を挿入し、次に子行を挿入する。参照値が存在することを確認する: SELECT * FROM parent_table WHERE key_column = value。一括ロードでは親子の順序を守る。SET FOREIGN_KEY_CHECKS=0 は管理されたメンテナンス作業でのみ使い、終了後に 1 に戻す。

DBAtlas で開く →

同じデータベースの他の項目