MySQL笔记-外键创建失败总结
来源:互联网 发布:pyqt5 windows 编辑:程序博客网 时间:2024/05/22 05:04
在MySQL中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因。
1. 两个字段的类型或者大小不严格匹配。例如,如果一个是int(10),那么外键也必须设置成int(10),而不是int(11),也不能是tinyint。另外,你还必须确定两个字段是否一个为 signed,而另一个又是unsigned(即:无符号),这两字段必须严格地一致匹配,更多关于signed和unsigned的信息,请参阅:http://www.verysimple.com/blog/?p=57
2. 试图设置外键的字段没有建立起索引,或者不是一个primary key(主键)。如果其中一个不是primary key的话,你必须先为它创建一个索引。
3. 其中一个或者两个表是MyISAM引擎的表。若想要使用外键约束,表必须是InnoDB引擎(实际上,如果两个表都是MyISAM 引擎的,这个错误根本不会发生,但也不会产生外键,只会建立索引)你需要检查表的引擎类型。
4. 外键的名字不能重复。你应该检查你的数据库以确保外健名字是唯一的,或者你在键名后面加上几个随机的字符以测试是否是这个原因。
5. 你可能设置了ON DELETE SET NULL,但是相关的键的字段又设置成了NOTS NULL值。你可能通过修改cascade的属性值或者把字段属性设置成allow null来解决。
6. 请确定你的Charset和Collate选项在表级和字段级上的一致。
7. 你可能设置为外键设置了一个默认值,如default=0。
8. ALTER声明中有语法错误
当出现错误时,仔细检查数据库表和字段的设计。我更建议大家尽量使用工具来设计和创建数据库,这样能减少出错的概率。
原文:http://blog.csdn.net/wangpeng047/article/details/19624351
- MySQL笔记-外键创建失败总结
- mysql创建外键失败原有总结
- MySQL外键创建失败1005原因总结
- MySQL创建外键失败,错误信息1005
- mysql外键创建失败的问题
- mysql外键创建失败的原因
- Navicat for Mysql外键创建失败
- mysql外键创建失败的问题
- mysql添加外键失败原因总结
- 关于mysql外键创建失败的问题
- 关于mysql外键创建失败的问题
- mysql 创建用户失败
- mysql 创建表失败
- Mysql连接失败总结
- 外键创建失败原因
- mysql innodb创建数据文件失败
- mysql创建触发器总是失败
- 数据库创建视图失败总结
- vs2003在win7下搜索或调试卡死
- 3000门徒内部训练绝密视频(泄密版)第1课:大数据最火爆语言Scala光速入门
- javascript base
- hdu 3951 Coin Game (博弈创建对称局势)
- 在IIS配置MIME下载apk格式的文件
- MySQL笔记-外键创建失败总结
- Concurrent包总结——线程安全的集合操作
- 剑指Offer——网易笔试之不要二——欧式距离的典型应用
- Activity与Fragment的生命周期
- MFC CArray移植到linux
- ThreadPoolExecutor应用
- cout<<字符串指针
- win7下打开mysql命令窗口
- 自定义标签TLD文件中,rtexprvalue属性到底什么意思