原因可能是:其中一个或者两个表是MyISAM引擎的表,若想要使用外键约束,表必须是InnoDB引擎(实际上,如果两个表都是MyISAM 引擎的,这个错误根本不会发生,但也不会产生外键,只会建立索引)你需要检查表的引擎类型
查看数据表引擎状态:
1:
show table status from my_db where name='my_foreign';
my_db为数据库名,my_foreign为数据表名
2:
show create table my_foreign;
my_foreign为数据表名
修改数据表类型为InnoDB:
alter table my_foreign engine = innodb;
my_foreign为数据表名
注意:MySQL数据库使用事务,相关数据表必须为InnoDB引擎