博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql干货——MySQL 1215错误 外键创建失败
阅读量:7045 次
发布时间:2019-06-28

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

hot3.png

 

在mysql创建表时,经常会创建失败,其中建立外键(foregin key)时有很多细节需要我们去留意,主要有以下几种原因,1。两个字段的类型或大小严格不匹配。例如,如果一个是int(10),那么外键也必须设置成int(10),而不是int(11),也不能是tinyint。另外,你还必须确定两个字段是否都为signed或者unsigned,这两字段必须严格地一致匹配。

2. 设置外键的字段没有建立起索引,或者不是一个primary key(主键)。一般,需要建立外键的数据表称为子表,而相关联的数据表称为父表。建立外键时所对应的父表的字段必须要创建索引primary key。
3. 其中一个或者两个表是MyISAM引擎的表。若想要使用外键约束,表必须是InnoDB引擎(实际上,如果两个表都是MyISAM 引擎的,这个错误根本不会发生,但也不会产生外键,只会建立索引)你需要检查表的引擎类型。
4. 外键的名字不能重复。检查该数据库确保外健名字是唯一的,或者你可以在键名后面加上几个随机的字符以测试是否为此原因。
5. 设置了ON DELETE SET NULL,但是相关的键的字段设置成了NOT NULL值。通过修改外键的属性值或者把字段属性设置成allow null来解决。
6. 确保你的Charset和Collate选项在表级和字段级上的一致。
7. 两字段设置的默认值不一致。一个字段设置default为0,一个设置default为null,也是不可行的。
8. ALTER声明中有语法错误。

转载于:https://my.oschina.net/u/3980693/blog/2254730

你可能感兴趣的文章
Eclipse 的 J2EE Preview Server 端口设置
查看>>
winform 一个点击事件触发另一个点击事件
查看>>
关于empty()返回Fatal error: Can't use function return value in write context的错误问题
查看>>
为什么有了uwsgi还要nginx这个“前端”服务器
查看>>
Java BufferString
查看>>
Android笔记——Socket通信实现简单聊天室
查看>>
js修改onclick事件的四种方法
查看>>
我的友情链接
查看>>
linux文件管理必会知识
查看>>
Cocos2d-xna : 横版战略游戏开发实验4 Layer构建丰富的交互
查看>>
我的友情链接
查看>>
EDM邮件营销如何防止邮件被拒收和进垃圾箱
查看>>
Linux iostat监测IO状态
查看>>
No module named yum错误的解决办法
查看>>
机器学习之sklearn——EM
查看>>
tengine整合tomcat加上memcached实现高并发、负载均衡、可扩展架构
查看>>
CloudStack追求简单易用
查看>>
VII Python(7)爬虫
查看>>
java位运算
查看>>
我的友情链接
查看>>