【问题标题】:MySQL error 1452 Cannot add or update child rowMySQL 错误 1452 无法添加或更新子行
【发布时间】:2013-06-27 22:06:47
【问题描述】:

MySQL 初学者。

有一个项目(由其他人编写)正在运行。 为它获得了新的数据库,将其放入 MySQL 中。 现在出现错误

1452 Cannot add or update child row: a foreign key constraint fails ('proj'.'access_logs', CONSTRAINT 'access_logs_ibfk_1' FOREIGN KEY ('user_id') REFERENCES 'users' ('id'))

access_logsaccess_logs_ibfk_1usersusers_ibfk_1,-4,-5,-6 - 其中 4 个

已查看并尝试过:

  • 确保没有accesslogs user_id 和没有匹配的users id
  • 排序规则相同 (utf8_general_ci)
  • 引擎相同 (InnoDB)
  • 类型相同(user_id 是 INT(11) UN,idINT(11) UN PK AI)
  • 确保程序可以正常使用以前的数据(在 CakePHP 1.3 中)并且可以正常工作

可能出了什么问题,如何解决?

【问题讨论】:

标签: mysql cakephp-1.3


【解决方案1】:

您在表access_logs 中有一个字段接受user_id,该数字必须首先存在于表users 的字段id 中。

外键(或简称FK)是对您插入表中的数据的约束,这意味着您插入表A的值必须首先存在于其他表中。该表中的哪个其他表和哪个字段取决于您如何定义 FK。

我会阅读有关基于 SQL 的服务器的常见约束(主键、非空键、唯一键和外键)

【讨论】:

  • 感谢您的回信。确定没有
猜你喜欢
  • 2012-02-06
  • 2018-11-22
  • 1970-01-01
  • 1970-01-01
  • 2022-11-25
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
  • 1970-01-01
相关资源
最近更新 更多