4月 022013
 

外部キーを持った表にレコードを挿入しようとしたら、「Cannot add or update a child row: a foreign key constraint fails」
と、でてしまった。

mysql> INSERT INTO parent(product_id,status_id,category_id,id,created_at,updated_at) VALUES('3','2','2','5','2012-04-06 21:42:38','2012-10-17 11:34:35');
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`tktrac/parent`, CONSTRAINT `fk_reservation_priority` FOREIGN KEY (`priority_id`) REFERENCES `priority` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION)

ググってみると、存在しない親の外部キーを挿入しようとすると出るとなっているが、ここでエラーとなっている
“priority_id”には挿入しようとはしていない。
“priority_id”にはNOT NULLはつけていないけど、外部キーは値が必須なのかと思い、
“priority_id”も挿入するように変更したらうまくいった。。

mysql> INSERT INTO parent(product_id,status_id,category_id,id,priority_id,created_at,updated_at) VALUES('3','2','2','5','1', '2012-04
-06 21:42:38','2012-10-17 11:34:35');
Query OK, 1 row affected, 2 warnings (0.01 sec)

しかし、ほかにも外部キーはあり、ほかの外部キーは挿入しなくてもエラーとならない。
よくわからないので、挿入対象のテーブルをもう一度作り直したらエラーがなくなった。
なぞ。

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>