2013-03-25 66 views
0

我写了一个simple SQL语句来为wordpress创建插件 - 只有少数关系表。 我决定在MySQL工作台上测试一下,一切正常,拿到表格和关系。然后我试图正向工程它 - 工作台稍微changes the text ...然后报告错误: enter image description here无法创建外键

老实说,我很疑惑这里...模式看起来很简单,我敢肯定,我没有为什么会出现错误?

+0

可能的确切的重复:http://stackoverflow.com/questions/1400984/cant-create-foreign-key?rq=1 – jsedano 2013-03-25 22:49:04

+1

如果'wp_users.ID'是'BIGINT UNSIGNED',所以'owner'必须是。 – 2013-03-25 22:55:56

+0

是的,我必须是盲人...没有注意到UNSIGNED部分 – Yasskier 2013-03-25 23:05:01

回答

0

难道是引擎? InnoDB处理外键,但我认为标准的MyISAM不会,或者至少不总是,取决于版本。

+0

这可能是相关的:http://stackoverflow.com/questions/12371593/mysql-workbench-ignores-foreign-keys?rq=1 – 2013-03-25 22:50:52

+0

MyISAM不永远不会。服务器接受这种引擎的任何FK定义,但默默忽略它。 – 2013-03-26 08:00:06

1

确保两个表中的列都相同,包括外键和主键的符号。

+0

是的,现在我注意到ID是BIGINT UNSIGNED – Yasskier 2013-03-25 23:03:47

0

如果您试图将外键限制添加到包含数据的表中的属性,那么如果外键限制未得到满足,您可能会遇到问题。我的意思是,如果在现在是外键的属性中有一个值,并且该值不包含在外键引用的表的属性中。