在mysql 中建立引用约束的时候会出现MySQL ERROR 1005: Can't create table (errno: 150)的错误信息结果是不能建立 引用约束。
出现问题的大致情况
1、外键的引用类型不一样,主键是int外键是char
2、找不到主表中 引用的列
3、主键和外键的字符编码不一致
4.还有要建立外键的话,要先建立索引。没有建立索引也会出错。
=======================================================
实际情况:
主键字段是utf-8编码,而需要建立外键的字段是latin
按照要求,数据库重新按照utf-8重建,解决问题
=======================================================
发现还有种问题存在:
建表语句不规范,有开发人员自己写的,有的指定了Storage Engine,有的没指定,
这样万一DB缺省的Storage Engine和写上去的不一样,这样造成在一个database中,不同的表的Storage Engine不一样,这样这些表就不能相互建立Foreign Key
分享到:
相关推荐
在MySQL里创建外键时,提示错误,但只提示很简单的信息:ERROR 1005 (HY000): Can’t create table ‘db_qxztc.qx_userssssnew’ (errno: 150)。根本起不到解决问题的作用。 要看错误的详细提示,可以使用命令:(在...
错误代码121进一步说明了具体问题,即"Can't create table",通常是因为试图创建的表与已经存在的表有冲突,或者表的外键约束定义不正确。具体到errno 121,它提示的是"Duplicate key on write or update",即在写入...
1. 确认外键的正确名称:使用`SHOW CREATE TABLE`命令查看表的创建语句,找出外键的确切名称。 2. 删除外键:使用`ALTER TABLE`命令,指定表名和要删除的外键名称,如`ALTER TABLE task DROP FOREIGN KEY FK_...
#### 问题4:创建子表时,出现错误“ERROR 1005 (HY000): Can't create table 'database.tablename' (errno: 150)”,如何解决? 当尝试创建一个依赖于另一个表的子表时,可能会遇到此错误。这是因为子表的外键引用...
4. 创建子表时,出现错误“ERROR 1005 (HY000): Can't create table 'database.tablename'(errno: 150)”,如何解决? 解决方法:检查子表的外键是否关联父表的主键,且关联字段的数据类型是否匹配,如果类型不一样...
7.4.13 与GROUP BY子句一起使用的函数 7.5 CREATE DATABASE (创建数据库)句法 7.6 DROP DATABASE (抛弃数据库)句法 7.7 CREATE TABLE (创建表)句法 7.7.1 隐含(silent)的列指定变化 ...
10. 错误代码2003: "Can't connect to MySQL server on 'hostname' (errno: X)",通常是因为网络问题或服务器未运行导致无法连接到MySQL服务。 为了解决这些问题,可以采取以下步骤:检查并修复配置文件(如my.cnf...
Apache一起使用 MySQL 18 问题和常见的错误 18.1 如果 MySQL总是崩溃怎么办 18.2 使用 MySQL 时一些常见错误 18.2.1 MySQL server has gone away错误 18.2.2 Can't connect to [local] MySQL ...
* 1 MySQL的一般的信息 o 1.1 什么是MySQL? o 1.2 关于本手册 + 1.2.1 本手册中使用的约定 o 1.3 MySQL的历史 o 1.4 MySQL的主要特征 o 1.5 MySQL稳定性? o 1.6 顺应2000年 o 1.7 SQL一般信息和教程 o ...