我在数据库中创建了两个表
CREATE TABLE ratables (
id int(11) NOT NULL auto_increment,
ratableKey varchar(50) NOT NULL,
created_at timestamp NOT NULL default CURRENT_TIMESTAMP,
) AUTO_INCREMENT=1 ;
和
CREATE TABLE ratings (
id int(11) NOT NULL auto_increment,
ratable_id int(11) NOT NULL,
ip_address varchar(50) NOT NULL,
rating int(11) NOT NULL,
timestamp timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (id),
CONSTRAINT rabid_ratings_fk FOREIGN KEY (ratable_id) REFERENCES
ratables(id)
) AUTO_INCREMENT=1 ;
当我尝试插入
时INSERT INTO ratings(ratable_id, ip_address, rating) VALUES ('9', 'ip_adresse', 'rating');
它给了我这个错误
Cannot add or update a child row: a foreign key constraint fails (bd_pagespro.ratings, CONSTRAINT rabid_ratings_fk FOREIGN KEY (ratable_id) REFERENCES ratables(id))
请帮助!
答案 0 :(得分:0)
这意味着您的表格ratable中没有一行ID =' 9'。
由于我不知道您使用的数据库,我无法确定它不仅仅是一个类型问题。 ' 9'可能不是int,因此错误。
答案 1 :(得分:0)
在插入命令之前添加此项来关闭它:
SET foreign_key_checks = 0;
然后在插入后将其设置回来:
SET foreign_key_checks = 1;
请注意并确保您知道自己在做什么。一定要确保以后将适当的数据插入外键。