`
zybing
  • 浏览: 465494 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MySQL创建外键的时候发生: ERROR 1005: Can't create table (errno: 150)

阅读更多

 

资料来源:http://venus224.iteye.com/blog/284944

在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的解决办法

    在MySQL里创建外键时,提示错误,但只提示很简单的信息:ERROR 1005 (HY000): Can’t create table ‘db_qxztc.qx_userssssnew’ (errno: 150)。根本起不到解决问题的作用。 要看错误的详细提示,可以使用命令:(在...

    解析mysql数据库还原错误:(mysql Error Code: 1005 errno 121)

    错误代码121进一步说明了具体问题,即"Can't create table",通常是因为试图创建的表与已经存在的表有冲突,或者表的外键约束定义不正确。具体到errno 121,它提示的是"Duplicate key on write or update",即在写入...

    MySQL删除外键问题小结

    1. 确认外键的正确名称:使用`SHOW CREATE TABLE`命令查看表的创建语句,找出外键的确切名称。 2. 删除外键:使用`ALTER TABLE`命令,指定表名和要删除的外键名称,如`ALTER TABLE task DROP FOREIGN KEY FK_...

    MySQL常见错误及解决方案

    #### 问题4:创建子表时,出现错误“ERROR 1005 (HY000): Can't create table 'database.tablename' (errno: 150)”,如何解决? 当尝试创建一个依赖于另一个表的子表时,可能会遇到此错误。这是因为子表的外键引用...

    MySQL常见错误及解决方案.pdf

    4. 创建子表时,出现错误“ERROR 1005 (HY000): Can't create table 'database.tablename'(errno: 150)”,如何解决? 解决方法:检查子表的外键是否关联父表的主键,且关联字段的数据类型是否匹配,如果类型不一样...

    MySQL中文参考手册.chm

    7.4.13 与GROUP BY子句一起使用的函数 7.5 CREATE DATABASE (创建数据库)句法 7.6 DROP DATABASE (抛弃数据库)句法 7.7 CREATE TABLE (创建表)句法 7.7.1 隐含(silent)的列指定变化 ...

    MySQL常见出错代码速查表

    10. 错误代码2003: "Can't connect to MySQL server on 'hostname' (errno: X)",通常是因为网络问题或服务器未运行导致无法连接到MySQL服务。 为了解决这些问题,可以采取以下步骤:检查并修复配置文件(如my.cnf...

    MYSQL

    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 ...

    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 ...

Global site tag (gtag.js) - Google Analytics