我试图在我的数据库表中插入一行,但我一直在收到SQL错误。
我有一个名为tbl_template_log的表,它有3个Forgain Keys,user_id,temp_id,savedtemp_id,目前我只想用user_id插入一行,并将temp_id和savedtemp_id设置为0。
查询:
INSERT INTO tbl_template_log (user_id, temp_id, savetemp_id, send_date, send_to, email_send) VALUES (user_id=77, temp_id=0, savetemp_id=0, send_date='2013-10-10', send_to='test@test.com', email_send='hello')
错误:
INSERT INTO tbl_template_log (user_id, temp_id, savetemp_id, send_date, send_to, email_send) VALUES (user_id=77, temp_id=0, savetemp_id=0, send_date='2013-10-10', send_to='test@test.com', email_send='hello')
MySQL said: Documentation
#1452 - Cannot add or update a child row: a foreign key constraint fails (`admin_boltmail`.`tbl_template_log`, CONSTRAINT `tbl_template_log_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `tbl_user` (`user_id`))
从我的理解中,user_id存在某种问题,即用户的ID必须存在于tbl_user中,而ID 77是现有的用户ID ......
有人可以指出我正在做的一个错误。 THX
答案 0 :(得分:0)
除非外键约束中指定的其他表已经包含您尝试插入的字段值的记录,否则无法向此表添加行。这就是外键约束的含义。
您试图破坏您在桌面上定义的规则。不,数据库不会让你破坏规则。您必须将记录添加到外键表或禁用约束。