这个问题有可能是因为表的存储引擎引起的
表的存储引擎的查看
首先登陆测试服务器的数据库查看表的存储引擎
有两种方式查看
show table status from db_name where name='table_name';
show create table table_name;
MySQL的存储引擎有几种,有些支持外键,有些不支持外键。详细的MySQL引擎知识请自行百度 Google。
表的存储引擎的修改
alter table table_name engines=innodb;
但是并没有解决根本问题,如果以后再次创建表的时候还要修改那不是特别麻烦吗?
查看数据库默认的存储引擎
show engines;
由于我这里已经修改了,所以默认的看到默认的引擎是InnoDB
修改数据库的默认存储引擎
找到my.cnf文件
在[mysqld]下面添加一行default-storage-engine=INNODB
重启MySQL