Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 无法添加外键约束,而不添加任何约束_Mysql_Sql_Foreign Keys - Fatal编程技术网

Mysql 无法添加外键约束,而不添加任何约束

Mysql 无法添加外键约束,而不添加任何约束,mysql,sql,foreign-keys,Mysql,Sql,Foreign Keys,我正在尝试创建此表: CREATE TABLE `TSO` ( `TSO_ID` INT UNSIGNED NOT NULL ) 我得到了SQL错误(1215):无法添加外键约束,可能是什么? 如果我更改了表名,它就会工作 谢谢好的,我设法修好了,事情是这样的 我有一个表“TSO”和一个表“SO”,它引用了TSO,我设法删除了TSO而没有得到任何约束错误(我相信我应该有,即使“SO”是空的) 此后,每当我尝试插入名为“TSO”的表时,我都会遇到该错误,因为表“SO”仍然引用了现在已删除

我正在尝试创建此表:

CREATE TABLE `TSO` (
    `TSO_ID` INT UNSIGNED NOT NULL
)
我得到了
SQL错误(1215):无法添加外键约束,可能是什么?
如果我更改了表名,它就会工作


谢谢

好的,我设法修好了,事情是这样的

我有一个表“TSO”和一个表“SO”,它引用了TSO,我设法删除了TSO而没有得到任何约束错误(我相信我应该有,即使“SO”是空的)

此后,每当我尝试插入名为“TSO”的表时,我都会遇到该错误,因为表“SO”仍然引用了现在已删除的同名表。在我删除了“SO”之后,我终于能够再次插入TSO。

可能性是:

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


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

没有办法。显示用于执行的整个SQL脚本。ERRORSACTION不与整个脚本相关。我怀疑,与我以前删除的表同名的表中有一些剩余内容。