ERROR 1452 (23000): Cannot add or update a child row: …
MySQL:5.5.27
とあるテーブルに CSV データを入れ込もうとして下記エラーが出た。
このエラーは外部キー制約に違反したデータを保持した状態で
当該テーブルを更新しようとすると出るとのこと。
親テーブル(table_a)の取り込み時に、2行欠落していた。
親テーブル(table_a)を取り込み直して解決。
かなすぃ。 XO
あ~、またやってしまったと思い、
あれこれデータを調べてみたけど、不整合を見つけることができなかった。
親テーブル(table_a)の ID は、1~365。
子テーブル(table_b)の table_a_id カラムに入っている値を
phpMyAdmin で検索して、1 より小さいもの、365 より大きいものを見てみたけど
検索結果は 0。
ふと気になって、table_a のデータ件数を見てみたら
なんと! 364件。
あり? と思って、データを追ってみたら
ID:358 がない。。。
改めて、LAOD DATA LOCAL INFILE のログを見てみたら、あらら。。。
- Query OK, 363 rows affected (0.05 sec)
- Records: 365 Deleted: 0 Skipped: 2 Warnings: 0
じぇんじぇん見てなかったじぇ。。。
これを確認していれば、無駄な時間を取られずにすんだのに~。
Skipped: 2 なのに、364件あったのは。。。
い、今は気が付かなかったことにしましょ。。。