MySql 外键错误 150:一个令人费解的谜
当尝试创建具有外键关系的“foo”和“bar”表时,您遇到错误 1005 (HY000) 并参考错误 150。此错误可能会令人沮丧,让您对根本原因感到困惑。
根据 MySQL 关于 FOREIGN KEY Constraints 的文档,重新创建具有外键引用的已删除表时会出现问题。该表必须通过具有匹配的列名称和类型以及引用键上的索引来符合外键约束。如果不满足这些条件,MySQL 将返回错误 1005,并带有基础错误 150。
您的错误很可能是由于“foo”表未定义为 InnoDB 表所致。 MySQL 文档明确指出这两个表都必须是 InnoDB 表并且是非临时表。
通过修改“foo”建表查询来指定 InnoDB 引擎:
mysql> CREATE TABLE foo(id INT PRIMARY KEY) ENGINE=InnoDB;
你应该能够成功创建带有外键约束的“bar”表,解决错误150。
以上是MySQL 错误 150 和 1005:为什么我无法创建外键关系?的详细内容。更多信息请关注PHP中文网其他相关文章!