ホームページ >データベース >mysql チュートリアル >データベースに子の行を追加または更新できないのはなぜですか? (1452エラー)
データベース整合性制約違反: 子行を追加または更新できません
整合性制約の競合は、リレーショナル データベースでよく発生します。エラーの 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 サイトの他の関連記事を参照してください。