mysql 常见错误:Can't create table... errno150原因分析
来源:互联网 发布:java springmvc 分页 编辑:程序博客网 时间:2024/06/05 08:33
已知的原因:
1 两个字段的类型或者大小不严格匹配,例如,如果一个是INT(10), 那么外键也必须设置成INT(10), 而不是 INT(11) 也不能是 TINYINT. 你得使用 SHOW 命令来查看字段的大小,因为一些查询浏览器有时候把 int(10) 和int(11) 都显示为integer。另外,你还必须确定两个字段是否一个为 SIGNED,而另一个又是UNSIGNED, 这两字段必须严格地一致匹配。
2 你试图引用的其中一个外键没有建立起索引,或者不是一个primary key , 如果其中一个不是primary key 的放,你必须为它创建一个索引。
3 外键的名字是一个已经存在的一个键值了,这个时候,你应该检查你的数据库以确保外健名字是唯一的,或者你在键名后面加上几个随机的字符以测试是否是这个原因。
4 其中一个或者两个表是MyISAM引擎的表,若想要使用外键约束,必须是InnoDB引擎,(实际上,如果两个表都是MyISAM 引擎的,这个错误根本不会发生,但也不会产生外键),你可以通过查询浏览器来设置表的引擎类型
5 你可能设置了ON DELETE SET NULL, 但是相关的键的字段又设置成了NOTS NULL 值。你可能通过修改cascade 的属性值或者把字段属性设置成 allow null 来搞定这个bug.
6 请确定你的Charset 和 Collate 选项在表级和字段级上的一致
7 你可能设置为外键设置了一个默认值,如 default=0
8 在这个关系里面,其中的一个字段是一个混合键值中的一个,它没有自己独立的索引,这时,你必须为它创建一个独立的索引。
9 ALTER 声明中有语法错误
1、外键的引用类型不一样,主键是int外键是char
2、找不到主表中 引用的列
3、主键和外键的字符编码不一致
4、还有要建立外键的话,要先建立索引。没有建立索引也会出错。
1 两个字段的类型或者大小不严格匹配,例如,如果一个是INT(10), 那么外键也必须设置成INT(10), 而不是 INT(11) 也不能是 TINYINT. 你得使用 SHOW 命令来查看字段的大小,因为一些查询浏览器有时候把 int(10) 和int(11) 都显示为integer。另外,你还必须确定两个字段是否一个为 SIGNED,而另一个又是UNSIGNED, 这两字段必须严格地一致匹配。
2 你试图引用的其中一个外键没有建立起索引,或者不是一个primary key , 如果其中一个不是primary key 的放,你必须为它创建一个索引。
3 外键的名字是一个已经存在的一个键值了,这个时候,你应该检查你的数据库以确保外健名字是唯一的,或者你在键名后面加上几个随机的字符以测试是否是这个原因。
4 其中一个或者两个表是MyISAM引擎的表,若想要使用外键约束,必须是InnoDB引擎,(实际上,如果两个表都是MyISAM 引擎的,这个错误根本不会发生,但也不会产生外键),你可以通过查询浏览器来设置表的引擎类型
5 你可能设置了ON DELETE SET NULL, 但是相关的键的字段又设置成了NOTS NULL 值。你可能通过修改cascade 的属性值或者把字段属性设置成 allow null 来搞定这个bug.
6 请确定你的Charset 和 Collate 选项在表级和字段级上的一致
7 你可能设置为外键设置了一个默认值,如 default=0
8 在这个关系里面,其中的一个字段是一个混合键值中的一个,它没有自己独立的索引,这时,你必须为它创建一个独立的索引。
9 ALTER 声明中有语法错误
1、外键的引用类型不一样,主键是int外键是char
2、找不到主表中 引用的列
3、主键和外键的字符编码不一致
4、还有要建立外键的话,要先建立索引。没有建立索引也会出错。
0 0
- mysql 常见错误:Can't create table... errno150原因分析
- MYSQL中ERROR 1005 (HY000): Can't create table 错误
- MySQL ERROR 1005: Can't create table 分析
- mysql can't create table errno 150
- MYSQL中遇错:Can't Create table...
- MYSQL ERRNO:#1005 - Can't create table './my_news_release_system/user.frm' (errno: 150)原因总结
- 使用MySql创建表时发生Can't create table 'xx' (errno: 150)的可能原因。
- MySQL创建外键时错误:MySQL Error Number 1005 Can’t create table ‘XX.frm’ (errno: 150)
- mysql数据库创建外键时报MySQL ERROR:1005 Can't create table (erron:150)错误
- 关于MYSQL Error:ERROR 1005 (HY000) at line 3: Can't create table '.\xx.frm'错误
- MySQL错误之ERROR 1005 (HY000): Can't create table '******' (errno: 150)
- MySQL创建外键时报Can't create table (errno: 150)错误解决办法
- 错误笔记之Can't create table 'xxxx' (errno: 121)
- can't create transaction lock on ... 错误原因
- can't create transaction lock on ... 错误原因
- mysql 创建外键:ERROR 1005: Can't create table
- mysql 创建外键:ERROR 1005: Can't create table
- MySQL ERROR 1005: Can't create table (errno: 150)解决办法
- Delete Last Element
- 搭建自己的MVC框架
- 杨鑫的C++上机报告
- [GDKOI2016]魔卡少女
- win8.1系统中Sybase PowerBuilder已停止工作的有效解决办法
- mysql 常见错误:Can't create table... errno150原因分析
- PAT-A1009 Product of Polynomials (25)(模拟)
- Mac的MySQL无法启动的原因
- 基数排序
- 【BZOJ3122】【SDOI2013】随机数生成器(快速幂+BSGS)
- [GDKOI2016]不稳定的传送门
- Search a 2D Matrix
- 详解MapReduce过程
- 集合无序性的体验