外部キー制約違反: MySQL のエラー 1452 について
MySQL エラー 1452、「子行を追加または更新できません: 外部キー」制約が失敗しました」というエラーは、外部制約に違反しているときに子テーブルにデータを挿入または変更しようとすると発生します。重要な関係。このエラーは、親テーブルで参照されているレコードが見つからないか、無効であることを示します。
説明したシナリオでは、sourcecodes_tags テーブルに外部キーを追加して、sourcecodes テーブルを参照しようとしています。ただし、競合の可能性があるため失敗します。
この問題を解決するには、まず、sourcecodes_tags テーブルに孤立したレコードがあるかどうかを確認する必要があります。孤立したレコードは、ソースコード テーブルに存在しない行を参照するレコードです。
孤立したレコードを検索するには、次のクエリを実行します。
SELECT DISTINCT sourcecode_id FROM sourcecodes_tags tags LEFT JOIN sourcecodes sc ON tags.sourcecode_id=sc.id WHERE sc.id IS NULL;
このクエリは、ソース コード ID をリストします。親テーブルには存在しません。
孤立したレコードを特定したら、sourcecodes_tags から削除できます。 DELETE ステートメントを使用してテーブルを作成します。孤立したレコードを削除した後、外部キー制約を正常に追加できます。
さらに、有効なソース コード ID をsourcecodes_tags テーブルに挿入していることを確認することが重要です。挿入された ID がソースコード テーブルに存在しない場合、エラー 1452 が発生します。
以上がMySQL エラー 1452: 外部キー制約違反を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。