ホームページ >データベース >mysql チュートリアル >「子行を追加または更新できません: 外部キー制約が失敗します」エラーの原因は何ですか?

「子行を追加または更新できません: 外部キー制約が失敗します」エラーの原因は何ですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-24 13:56:14894ブラウズ

What Causes

データベース整合性制約違反: 外部キー エラーについて

外部キー制約は、テーブル間の関係を維持することでデータの整合性を保証します。これらの制約に違反するデータを操作しようとすると、「整合性制約違反」エラーが発生します。

この場合、「子行を追加または更新できません: 外部キー制約が失敗しました」というエラーが発生しました。これは、コメント テーブルに挿入しようとしている値が外部キー制約に違反していることを示しています。

データベース スキーマの外部キー制約

データベース スキーマを確認すると、comments テーブルの外部キー project_id 列に外部キー制約があり、projects テーブルの id 列を参照していることがわかります。これは、comments テーブルの project_id 列のすべての値が、projects テーブルの id 列に存在する必要があることを意味します。

クエリ内の競合

実行しようとしている MySQL ステートメントは、project_id '50dc845a-83e4-4db3-8705-5432ae7aaee3' を持つ行をコメント テーブルに挿入します。ただし、この値はプロジェクト テーブルの id 列には存在しません。したがって、外部キー制約に違反します。

競合を解決する

この問題を解決するには、コメント テーブルに挿入された project_id 値が有効であり、プロジェクト テーブルの対応する列に存在することを確認する必要があります。この値がプロジェクト テーブルに存在することを確認し、それに応じて挿入ステートメントの値を修正します。

以上が「子行を追加または更新できません: 外部キー制約が失敗します」エラーの原因は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。