2列指向相同的外部字段

时间:2016-11-09 20:52:43

标签: mysql mysql-error-1452

我有一个mySQL表messages,其中包含以下字段:idparentprofesormessage

parentprofesor都是用户,存储在user表格中idnamelast name

所以我在phpMyAdmin中创建了表,然后我写道:

alter table messaged add foreign key (profesor) references user (id)

并且工作得很好! 当我为父母做同样的事情时,我得到了这个错误:

#1452 - Cannot add or update a child row: a foreign key constraint fails (`school`.`#sql-1e30_fe`, CONSTRAINT `#sql-1e30_fe_ibfk_2` FOREIGN KEY (`parent`) REFERENCES `user` (`id`))

我做错了什么?

1 个答案:

答案 0 :(得分:0)

你的消息中是否有任何数据'表?如果是这样,所有的messages.parent字段都应填充相应的user.id值,否则会出现此错误。

您可以使用此查询检查不约束行:

SELECT id, parent FROM messages WHERE parent NOT IN 
(SELECT id FROM user)