对MySQL一直没有什么研究,基础知识不甚,今天总算遇到个坑搞了2个小时。
现象:
新增加了一个简单的表,外键指向另外一个表的 id。增加 row 的时候,总是提示
1452, 'Cannot add or update a child row: a foreign key constraint fails
折腾了半天,Google 出来的都不太有用,找不到原因。最后偶然发现了一丝线索。起因是我更换了操作系统,升级了 MySQL 的版本。新版本是 5.5 默认新建的表是 Innodb 引擎的,而我原来的库都是用 MyISAM的,所以出问题了,详细见如下连接:
http://stackoverflow.com/questions/3890205/why-foreign-key-constraint-fails-when-foreign-key-exists
最后,必须说 mysql-workbench 这东西 5.2 版本挺好用啊,没用过 phpmyadmin 的人超级喜欢这个。