无法添加外键约束,同时无需添加约束

时间:2014-04-29 10:07:37

标签: mysql sql foreign-keys

我正在尝试创建此表:

CREATE TABLE `TSO` (
    `TSO_ID` INT UNSIGNED NOT NULL
)

我得到SQL error (1215): Cannot add foreign key constraint,它会是什么? 如果我更改表名,它就可以工作。

由于

2 个答案:

答案 0 :(得分:2)

可能性是:

删除了一个同名的表。根据mysql文档:

http://dev.mysql.com/doc/refman/5.0/en/create-table-foreign-keys.html

"如果重新创建已删除的表,则它必须具有符合引用它的外键约束的定义。它必须具有正确的列名和类型,并且必须在引用的键上具有索引,如前所述。如果不满足这些,MySQL将返回错误1005并在错误消息中引用错误150,这意味着未正确形成外键约束。类似地,如果ALTER TABLE由于错误150而失败,则意味着对于更改的表将错误地形成外键定义。"

答案 1 :(得分:0)

好的,我设法解决了,发生了什么事。

我有一个表“TSO”和一个引用TSO的表“SO”,我以某种方式设法删除TSO而没有遇到任何约束错误(我相信我应该有,即使“SO”是空的)。< / p>

之后我试图插入名为“TSO”的表时,我收到了该错误,因为表“SO”仍然引用了现在删除的具有相同名称的表。在我删除“SO”之后,我终于能够再次插入TSO。