Mysql error 1452 - Cannot add or update a child row: a foreign key constraint fails

2584 ワード

今日、mysqlテーブルに外部キーを付けると、いつもエラーが発生します.次はエラーが発生したSQL文です.
Alter table A  

  add constraint   FK_1  foreign key (`relation_id`) references B(`id`) on update Cascade on delete Cascade
エラーコード:1452
時計を見ても何の問題もありません.そしてrelation_idのフィールドには外部キーがないんですよね~~~
最後にグーグルでソリューションを検索しました.大まかな方法は以下の通りです.
mysql> SET foreign_key_checks = 0;

mysql> alter table tblUsedDestination add constraint f_operatorId foreign key(iOperatorId) references tblOperators (iOperatorId); Query
OK, 8 rows affected (0.23 sec) Records: 8  Duplicates: 0  Warnings: 0

mysql> SET foreign_key_checks = 1;

まずforeign_key_checksが無効になったら、テーブルに外部キーを付けてforeign_key_checks有効!
foreign_key_checksには理由がある.コンストレイントに違反しているため、外部キーを追加できない場合は、まずデータを修正する必要があります.チェックをオフにし、キーを追加すると不一致になります.外部キーチェックはオーバーヘッドを増加させ、使用したくない場合はmyisamを使用します.