最近在使用MySql的时候,给一张表添加外键,但是点击保存之后,外键会消失不见了。原因可能是以下两种:
第一将数据库中的表转储为SQL文件,然后,查看是否有以下语句:
SET FOREIGN_KEY_CHECKS=0;
这会让表的外键失效,便于修改外键参考的字段,解决方案是将其设置为1,即
SET FOREIGN_KEY_CHECKS=1;
如果修改后导入运行还是不能建立外键,那么可能是第二种原因。
第二是查看表的类型如果表的类型是否为MyISAM,因为MyISAM不支持事物管理,其与InnoDB基本的差别为:
- MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。
- MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持
- InnoDB提供事务支持以及外部键等高级数据库功能。