MySQL错误1452无法添加或更新子行

时间:2013-06-27 22:06:47

标签: mysql cakephp-1.3

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中)并且可以正常工作

可能出现什么问题以及如何解决?

1 个答案:

答案 0 :(得分:0)

表格access_logs中有一个字段接受user_id,该字段users中的{strong}必须位于字段id中。

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

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