ホームページ >データベース >mysql チュートリアル >子行を追加または更新できません: 外部キー制約が失敗します - MySQL エラーを解決する方法: 子行に外部キー制約があります
MySQL エラーを解決する方法: サブ行には外部キー制約があり、特定のコード例が必要です
MySQL データベースを使用すると、「追加できません」というエラーが発生することがあります。または子行を更新します: 外部キー制約が失敗します」というエラーが発生します。このエラーは通常、データの挿入または更新時の外部キー制約の問題を示します。この記事では、この問題を解決する方法を説明し、具体的なコード例を示します。
まず、外部キー制約について理解しましょう。データベースでは、外部キーはテーブル間の接続を確立するために使用される関係です。これは別のテーブルの主キーを指し、データの一貫性と整合性を維持するために使用されます。外部キー制約はデータの挿入または更新を制限します。指定された条件が満たされる必要があり、満たさない場合はエラーがスローされます。
「子行を追加または更新できません: 外部キー制約が失敗しました」エラーが発生した場合、通常は次のいずれかの理由が原因です。外部キー制約がありますが、挿入または更新されたデータが制約を満たしていません。
データが外部キー制約を満たしているかどうかを確認します。データを挿入または更新する前に、データが外部キーを満たしていることを確認してください。制約条件。たとえば、外部キーが別のテーブルの主キーに関連している場合、外部キー フィールドで挿入または更新されるデータは主テーブルに存在する必要があります。
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL);
次に、order テーブルを作成します。
order_id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT, order_date DATE,
FOREIGN KEY (user_id ) REFERENCES users(user_id)
);
ここで、order テーブルにデータを挿入したいのですが、user テーブルにユーザー ID が存在しない場合、外部キー制約エラーが発生します。トリガーされます。この問題を解決するには、まず対応するユーザー データをユーザー テーブルに挿入し、次に注文データを挿入します。
INSERT INTO users(username) VALUES ( 'John ');
-- 次に、注文データを挿入します
INSERT INTOorders(user_id, order_date) VALUES (1, '2022-01-01');
上記の手順を実行します。コード例を使用すると、「子行を追加または更新できません: 外部キー制約が失敗します」というエラーを解決できます。
以上が子行を追加または更新できません: 外部キー制約が失敗します - MySQL エラーを解決する方法: 子行に外部キー制約がありますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。