外部キーを持った表にレコードを挿入しようとしたら、「Cannot add or update a child row: a foreign key constraint fails」
と、でてしまった。
1 2 |
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”も挿入するように変更したらうまくいった。。
1 2 3 |
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) |
しかし、ほかにも外部キーはあり、ほかの外部キーは挿入しなくてもエラーとならない。
よくわからないので、挿入対象のテーブルをもう一度作り直したらエラーがなくなった。
なぞ。
/