博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
外键建立失败
阅读量:5281 次
发布时间:2019-06-14

本文共 766 字,大约阅读时间需要 2 分钟。

在中创建外键时,经常会遇到问题而失败,这是因为中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因。

1.  两个字段的类型或者大小不严格匹配。例如,如果一个是int(10),那么外键也必须设置成int(10),而不是int(11),也不能是tinyint。另外,你还必须确定两个字段是否一个为 signed,而另一个又是unsigned(即:无符号),这两字段必须严格地一致匹配,更多关于signed和unsigned的信息,请参阅:

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声明中有语法错误

当出现错误时,仔细检查数据库表和字段的设计。我更建议大家尽量使用工具来设计和创建数据库,这样能减少出错的概率。

转载于:https://www.cnblogs.com/moss-yang/p/7044617.html

你可能感兴趣的文章
Xmind几个有用的技巧
查看>>
数据库查询
查看>>
3-1 Git下载与安装
查看>>
汇编总结一
查看>>
if语句的嵌套使用之获取三个数据的最大值
查看>>
every day a practice —— morning(2)
查看>>
中介者模式
查看>>
UVA 437 The Tower of Babylon
查看>>
团队作业6
查看>>
html5-表单常见操作
查看>>
FreeMarke
查看>>
佳文赏析:《游戏使人上瘾的因素》
查看>>
邮件发送的问题(转载仅为收藏)
查看>>
window.open在ajax里 被浏览器拦截
查看>>
Excel操作快捷键
查看>>
Git之(三)辅助命令
查看>>
JSP自定义方法库
查看>>
android textView中实现html效果
查看>>
《摇滚南京》——"人生下来就是孤独"
查看>>
Oracle中Union与Union All的区别(适用多个数据库)
查看>>