您的位置:首页 > 数据库 > MySQL

mysql 加外键约束

2015-11-05 16:24 323 查看
管理实验室网站的原因,学了mysql一招。

1. mysql表类型分不同的引擎,包括MyISAM和InnoDB,因为商业的问题后面可能还有其他,没关心。

MyISAM对高级的事物操作支持非常差,连最基本的外键都不支持。所以,之前在表上加外键约束,不起效,后来定位是MyISAM的问题。

Navicat上点中一个表,看他的属性,就能看到用得时是什么引擎。

2. 我的mysql版本是5.6,支持InnoDB,在建表的时候,create table *()后加上一句,ENGINE=InnoDB就可以保证表的模型是InnoDB。

3. 加外键时,出了问题,1452,原因是表中的受外键约束列中出现的值,一定要再外键表中出现过,且在外键表中作为主键。

4. 如果原始数据库中的表是MyISAM,需要把表导出成sql脚本,然后删掉表,重新建一个,再导数据,或是数据库导出成sql,把里面MyISAM全部替换成InnDB,然后使用该脚本重新建库。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: