【问题标题】:2 columns pointing to the same foreign field2列指向同一个外部字段
【发布时间】:2017-03-23 18:51:50
【问题描述】:

我有一个 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`))

我做错了什么?

【问题讨论】:

  • 您的alter table 命令是针对professor 列,但错误消息是关于parent。是哪个?

标签: mysql mysql-error-1452


【解决方案1】:

'messages' 表中有任何数据吗?如果是这样,所有的messages.parent字段都应该填写相应的user.id值,否则你会得到这个错误。

您可以使用此查询检查不限制行:

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

【讨论】:

  • 我删除了消息中的所有数据,并且运行良好!谢谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-13
  • 2020-05-07
  • 1970-01-01
  • 1970-01-01
  • 2012-04-26
  • 2011-12-12
  • 2014-03-19
相关资源
最近更新 更多