查看有关外键约束的MySQL手册:
如果重新创建已删除的表,则该表必须具有符合引用该表的外键约束的定义。如前所述,它必须具有正确的列名和类型,并且必须在引用的键上具有索引。如果不满足这些条件,MySQL将返回错误号1005,并在错误消息中引用错误150。
一些想法:
- 最好删除表,并使用格式正确的语法对其进行新建。
- 确保添加
ENGINE=InnoDB;
到CREATE TABLE
-命令。 - 确保在您的MySQL服务器上启用了InnoDB。要验证这一点,请尝试以下命令:
SHOW VARIABLES LIKE 'have_innodb';
-如果返回YES,则启用InnoDB。 - 检查命令中表名和字段名的大小写。
- 不仅要检查要创建的表,还要检查外键引用的表。
- 确保引用的表已正确索引。



