我正在尝试创建此表:
CREATE TABLE `TSO` (
`TSO_ID` INT UNSIGNED NOT NULL
)
我得到SQL error (1215): Cannot add foreign key constraint
,它会是什么?
如果我更改表名,它就可以工作。
由于
答案 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。