ERROR 1005 (HY000): Can't create table ' ****.frm' (errno: 150)
问题
1、确保参照的表和字段是存在的;
2、组成外键的字段要求被索引(主要是外键那个字段要求在其他表中是主键);
3、外键关联的两表或多表要求都是INNODB类型的表;
4、字段类型(说明)要一样
从workbench导出的sql就是之一插入不了数据库,之前还可以,留下来做个记录吧。
第一和第四条都比较清楚,标注一下第2、3条。
2. 要求在该字段建立索引,我就是遇到这个问题,之前外键关联的字段改成了另一个,它是主键,但是是联合的,也就是建立了联合索引,这种情况下建立外键在这个键上mysql是不支持的,因此需要注意,必须是单独建立在这个键上了索引才行。
3. INNODB支持外键,MyISAM引擎不支持外键。
因此主要查看这两种错误,用工具建立的表一般不会出现1、4种错误,希望帮到看到文章的人减少浪费的时间。也做个记录。
相关推荐
在很多实例中,这种错误的发生都是因为mysql一直以来都不能很好的支持的关系的问题, 更不幸的是它也并没有指明到底是哪一个问题会导致上面那种错误,下面我把导致这个可怕 的150错误的常见原因列出来了,并且我以...
在MySQL中,创建外键关联时遇到"errno:150"错误,通常是由于数据类型不匹配、缺少索引或不正确的约束设置等原因导致的。以下是对这些常见问题的详细解释: 1. **数据类型不匹配**:外键字段与主键字段的数据类型...
4. 创建子表时,出现错误“ERROR 1005 (HY000): Can't create table 'database.tablename'(errno: 150)”,如何解决? 解决方法:检查子表的外键是否关联父表的主键,且关联字段的数据类型是否匹配,如果类型不一样...
在MySQL里创建外键时,提示错误,但只提示很简单的信息:ERROR 1005 (HY000): Can’t create table ‘db_qxztc.qx_userssssnew’ (errno: 150)。根本起不到解决问题的作用。 要看错误的详细提示,可以使用命令:(在...
MySQL数据库在执行还原操作时,可能会遇到各种错误,其中一种常见的错误是`Error Code: 1005`,伴随着`errno 121`。这个错误通常与表的结构有关,特别是涉及到外键约束或者主键冲突时。在本文中,我们将深入探讨这个...
在新建外键或删除外键时,也可能会遇到错误150,这通常与数据类型不匹配、引用的列不存在或者约束条件与列定义不符有关。解决这类问题的方法是检查外键定义,确保所有列的数据类型、长度和精度都与被引用的列相匹配...
1.6 顺应2000年 1.7 SQL一般信息和教程 1.8 有用的MySQL相关链接 2 MySQL 邮件列表及如何提问或报告错误 2.1 MySQL邮件列表 2.2 提问或报告错误 2.3 怎样报告错误或问题 ...
10. 错误代码2003: "Can't connect to MySQL server on 'hostname' (errno: X)",通常是因为网络问题或服务器未运行导致无法连接到MySQL服务。 为了解决这些问题,可以采取以下步骤:检查并修复配置文件(如my.cnf...
1.6 顺应2000年 1.7 SQL一般信息和教程 1.8 有用的MySQL相关链接 2 MySQL 邮件列表及如何提问或报告错误 2.1 MySQL邮件列表 2.2 提问或报告错误 2.3 怎样报告错误或问题 2.4 在...
* 2 MySQL 邮件列表及如何提问或报告错误 o 2.1 MySQL邮件列表 o 2.2 提问或报告错误 o 2.3 怎样报告错误或问题 o 2.4 在邮件列表上回答问题的指南 * 3 MySQL的许可证和技术支持 o 3.1 MySQL的许可证政策 o ...
`mysql_error()`函数可以获取错误信息,`mysql_errno()`返回错误代码。良好的错误处理机制能够使程序更加健壮。 此外,为了提高性能,开发者可能采用了预编译语句(prepared statements)来防止SQL注入攻击。预编译...