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,然后使用该脚本重新建库。
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,然后使用该脚本重新建库。
相关文章推荐
- mysql类
- MYSQL数据库备份与恢复
- MySQL error log配置及管理
- 如何在MySQL中设置外键约束以及外键的作用
- MySQL JDBC驱动 - 01 - Class.forName
- MySQL 5.6 Threadpool(优先队列)介绍及性能测试【转】
- mysql 添加用户 可以远程访问
- Mysql自增异常
- MYSQL my_print_defaults程序解析
- mysql外链接查询
- mysql 重置 root 密码
- mysql 二进制日志恢复
- mysql 历史数据表迁移方案
- 转 mysql中int、bigint、smallint 和 tinyint的区别与长度的含义
- MySQL简单安全管理和故障排查
- Mysql 查询实现成绩排名,相同分数名次相同,类似于rank()函数
- mysql多表查询二内链接
- MySQLi实现数据库操作的预处理
- 一、源码安装mysql5.6-单实例
- MySQL配置文件my.cnf中各【】块解释