Mysql无法创建外键的原因
在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声明中有语法错误
当出现错误时,仔细检查数据库表和字段的设计。我更建议大家尽量使用工具来设计和创建数据库,这样能减少出错的概率。
转载于:https://www.cnblogs.com/xkcp008/p/5687342.html
Mysql无法创建外键的原因相关推荐
- mysql setnull_1、Mysql无法创建外键的原因 2、MySql 外键约束 之CASCADE、SET NULL、RESTRICT、NO ACTION分析和作用...
在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1. 两个字段的类型或者大小不严格匹配.例如,如果一个 ...
- Mysql学习总结(19)——Mysql无法创建外键的原因
在MySQL中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1. 两个字段的类型或者大小不严格匹配.例如,如果一个 ...
- Mysql无法创建外键的原因汇总_查看MySQL创建外键约束失败详细原因的方法
以下是引用片段: LATEST FOREIGN KEY ERROR -------- 081210 11:57:40 Error in foreign key constraint of table ...
- Mysql创建外键错误原因分析
在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,查看大神的总结后列出了以下几种常见原因. 1. 两个字段的类型或者大小不严格匹配.例如,如果一个是in ...
- (转)mysql 无法设置外键的原因总结
在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1. 两个字段的类型或者大小不严格匹配.例如,如果一个 ...
- mysql 创建外键索引吗_索引-MySQL无法创建外键约束
我在为mysql数据库中的现有表创建外键时遇到一些问题. 我有experiment表: +-------------+------------------+------+-----+--------- ...
- mysql可视化创建外键说明_关于使用可视化图形工具navicat for mysql来创建外键的步骤...
主键:主键是一张表的唯一标识符,应该让其处于不可被外界更改状态. 且主键对于用户来说是无意义的,为了明确这一点,我们应该让主键处于一种幽魂状态,即主键存在,但其他人并不感觉到它存在. 外键:创建外键是 ...
- mysql 图形界面外键_关于使用可视化图形工具navicat for mysql来创建外键的步骤
主键:主键是一张表的唯一标识符,应该让其处于不可被外界更改状态. 且主键对于用户来说是无意义的,为了明确这一点,我们应该让主键处于一种幽魂状态,即主键存在,但其他人并不感觉到它存在. 外键:创建外键是 ...
- MySQL无法创建外键、查询外键的属性
MySQL存储引擎--MyISAM与InnoDB区别 - 上善若水,水善利万物而不争. - CSDN博客 http://blog.csdn.net/xifeijian/article/details ...
最新文章
- 基于Sobel计算图像梯度图
- 浅析机器视觉在安防行业的应用
- ggplot2绘图入门系列之二:图层控制与直方图
- mac 安装node_node 服务端部署
- 【小白学习C++ 教程】六、C++内置函数和函数传参
- Spring JdbcTemplate batchUpdate() 实例
- GeneralUpdate实现应用程序更新
- 抓到一只苍蝇 writeup
- CentOs中mysql的安装与配置
- 阿里云语音识别模型端核心技术选讲
- h265硬解码和软解码
- java导出可运行文件格式,|java导出excel,excel打不开,报文件格式无效,怎么解决!...
- 普乐蛙4d5d动感影院|VR太空旅行设备|VR带你遨游太空
- Telegram传奇:俄罗斯富豪、黑客高手、极权和阴谋
- ccna 服务器输入域名显示不出,思科为服务器设置域名
- 无人驾驶感知篇之融合(一)
- Azure China (11) 使用Azure China Storage Public Blob
- 画火柴人动画的手机软件_火柴人动画制作软件(Pivot Stickfigure Animator)2.25 中文版附教程...
- html做网页 窗口最小化后,40种网页常用小技巧
- 字节跳动的面试分享,为了拿下这个offer鬼知道我经历了什么
热门文章
- 8月份Github上最热门的Python开源项目
- 在eclipse中使用JDBC连接MySQL5.7.24
- Codeforces Round #545 B. Circus
- Postgresql的使用
- stopImmediatePropagation函数和stopPropagation函数的区别
- windows python MySQL-python安装过程
- 【POJ2409】Let it Bead Pólya定理
- Python全栈开发,Day1 - Python基础1
- hdu 2295 Radar 重复覆盖+二分
- 【Nginx】epoll事件驱动模块