ホームページ >データベース >mysql チュートリアル >データベースに子の行を追加または更新できないのはなぜですか? (1452エラー)

データベースに子の行を追加または更新できないのはなぜですか? (1452エラー)

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-24 14:16:10248ブラウズ

Why Can't I Add or Update a Child Row in My Database? (1452 Error)

データベース整合性制約違反: 子行を追加または更新できません

整合性制約の競合は、リレーショナル データベースでよく発生します。エラーの 1 つは「1452 Cannot add or update child row」で、外部キー制約に関連しています。

外部キー制約とは何ですか?

外部キー制約は 2 つのテーブル間の関係を定義し、子テーブルの値が親テーブルの対応する値と確実に一致するようにします。これは、データの整合性を維持し、不整合を防ぐのに役立ちます。

エラーメッセージ

この場合、エラー メッセージは、comments テーブルの project_id 列を参照する projects テーブルの id 列に値を挿入しようとしていることを示します。ただし、挿入しようとしている値 (50dc845a-83e4-4db3-8705-5432ae7aaee3) は projects テーブルに存在しません。

回避策: 有効な親関係を確認してください

この問題を解決するには、comments テーブルの project_id 値が projects テーブルの id 列に存在することを確認します。定義された外部キー関係を維持するには、これらの値が一致する必要があります。この例では、comments テーブルの project_id 値を projects テーブルの id 列に存在する有効な値に更新するか、対応するプロジェクトの詳細を含む新しい行を projects テーブルに作成します。

正しい関係が確立されると、整合性制約に違反することなく、comments テーブルにデータを正常に挿入できるようになります。

以上がデータベースに子の行を追加または更新できないのはなぜですか? (1452エラー)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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