insert ステートメントを使用して外部キー制約を含むテーブルにデータを挿入すると、競合の問題が発生する可能性があります。
外部キーの機能は、ある列の値が別のテーブルの特定の値に対応している必要があることを確認することです。したがって、あるテーブルに存在しない値を別のテーブルに挿入しようとすると、外部キー制約違反が発生します。そのため、挿入操作は失敗します。
この問題を解決するには、主に 2 つの方法があります:
1. 制約を満たす値を挿入します
すべての外部キーが対応する テーブル内に一致するレコードが存在します。たとえば、新しい注文を注文テーブルに追加するときは、まずその注文が属する顧客が実際に顧客テーブルに存在することを確認する必要があります。
2. 外部キー制約をキャンセルする
対応するテーブルに一致するレコードを挿入できない場合は、外部キー制約をキャンセルできます。ただし、これには他の副作用が生じる可能性があります。たとえば、d の外部キーの制約をキャンセルすると、関連付けられたテーブルにダーティ データが表示される可能性があります。さらに、データベースの整合性とセキュリティが簡単に破られる可能性があります。したがって、2 番目の方法は、最初の選択肢としてではなく、特別な場合にのみ使用することをお勧めします。 ###以上がinsert ステートメントが外部キー制約と競合していますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。