为什么我的MySQL服务器无法识别外键关系?

时间:2011-08-21 10:47:39

标签: mysql foreign-keys relational-database innodb

我对Stack Overflow的问题已经得到了100多个答案,但现在是时候我终于注册并发布了我的第一个问题了!

好吧,我有一个表用于我的程序的用户和11个附加到此表的表,具有1:1和1:M的关系。大多数外键都设置为ON UPDATE CASCADE ON DELETE RESTRICT。如果我删除中心表,它允许我,尽管应该有外键。当我之前处理过关系数据库时,我会收到以下错误消息:

#1217 - Cannot delete or update a parent row: a foreign key constraint fails
#1452 - Cannot add or update a child row: a foreign key constraint fails

现在请注意,这是我实际上想要错误消息的一次。我想要关系数据库的功能,我的所有表都是InnoDB。谷歌没有帮助我,我在MySQL文档中找不到任何东西。

1 个答案:

答案 0 :(得分:0)

MySQL论坛上的

This post接近但没有详细说明需要做些什么来解决这个问题。基本上是:

service mysqld stop
cd /var/lib/mysql
mkdir old
mv ib* old
vim /etc/my.cnf
servie mysqld start

对于vim,请确保正确设置了innodb_buffer_pool_size,innodb_log_file_size和innodb_log_buffer_size。 MySQL论坛上的Another post有一些配置错误,即innodb_log_file_size需要是innodb_buffer_pool_size的25%,所以这三个分别有16M,4M和8M。