mysql 加外键约束

来源:互联网 发布:linux 创建编辑c文件 编辑:程序博客网 时间:2024/05/22 02:11

管理实验室网站的原因,学了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,然后使用该脚本重新建库。

0 0
原创粉丝点击