在使用MySQL的时候,在操作不当时,很容易出现 ERROR 1005 (HY000): Can't create table 这类错误。很多站长朋友可能需要排查很久才会找到问题的原因其实很简单,希望这篇文章可以对站长朋友以及Mysql初学者一点帮助。

MySQL官方提供的问题原因:

在信息中有一组【LATEST FOREIGN KEY ERROR】会有最近错误的详细描述和解决办法。

Cannot find an index in the referenced table where the referenced columns appear as the first columns, or column types in the table and the referenced table do not match for constraint.

(译:不能在“被reference的表”里找到包含“被reference字段”的索引,或者是两个关联字段类型不匹配)

以下介绍两个示例:

示例一:

程序代码

create table booktype

(

btid int(5) unsigned zerofill auto_increment not null primary key,

btname varchar(100) not null unique,

btnote text

);

create table books

(

bid int(5) unsigned zerofill auto_increment not null primary key,

bname char(30) not null,

isbn char(50) not null,

author char(30) not null,

press text,

summary text,

bcount int not null default 0,

btid int,

foreign key(btid) references booktype(btid)

);

出现的报错:

程序代码

ERROR 1005 (HY000): Can't create table '.\bookdata\books.frm' (errno: 150)

主要问题以及解决办法是:

foreign key(btid) references booktype(btid) 中books表的 btid 是int和booktype表中的btid设置的关联字段类型不匹配,books表中btid改正成:btid int(5) unsigned zerofill ,就不会报错了,创建表和修改表地时候常常一步小小就忘记了这个.

示例二:

MySQL里创建外键时(Alter table xxx add constraint fk_xxx foreign key),提示错误,但只提示很简单的信息:ERROR 1005 (HY000): Can't create table '.\env_mon\#sql-698_6.frm' (errno: 150)。根本起不到解决问题的作用。

drop table if exists products;

create table products(

id int not null auto_increment,

title varchar(100) not null,

description text not null,

image_url varchar(200) not null,

price decimal(10,2) not null,

date_available datetime not null,

primary key(id)

)type=innodb;

drop table if exists line_items;

create table line_items(

id int not null auto_increment,

product_id int not null,

quantity int not null default 0,

unit_price decimal(10,2) not null,

constraint fk_items_product foreign key (product_id) references producets(id),

index(product_id)

primary key(id)

)type=innodb;

出现的报错:

ERROR 1005: Can't create table

主要问题以及解决办法是:

1,MySQL支持外键约束,并提供与其它DB相同的功能,但表类型必须为 InnoDB

2、建外键的表的那个列要加上index

分享到:

2011-04-25 16:40

浏览 874

分类:数据库

评论

mysql 报错1005_MysqlERROR 1005错误处理相关推荐

  1. MySQL报错:SQL错误[1146][42s02]: Table 'tablename' doesn't exist(记一次以为自己删库的经历)

    先说一下这篇文章包含的知识点:bin_log服务查询,bin_log文件转为SQL文件,MySQL重启,MySQL磁盘不足报错,MySQL表名大小写配置 事情起因: 操作数据库的是我们的萌新妹子,不太 ...

  2. CentOS安装MySql报错:mysql error: Failed dependencies

    今天安装mysql报错,依赖错误,网上查了下后面加上--nodeps --force,开始正常安装

  3. mysql报错序号对应的错误

    mysql报错序号对应的错误 1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败<=================可以忽略 1008:数据库不存在,删除数据 ...

  4. mysql报错error2002_mysql中异常错误ERROR:2002的解决方法分享

    最近在启动mysql的时候发现mysql报错了,错误代码是2002,通过查找相关的资料发现是var/lib/mysql 的访问权限问题,所以这篇文章主要介绍了mysql中异常错误ERROR:2002的 ...

  5. 登录mysql报错2059,navicat连接mysql报错2059如何解决

    navicat连接mysql报错2059,如下图所示: 网上查询过后,发现这个错误出现的原因是在mysql8之前的版本中加密规则为mysql_native_password,而在mysql8以后的加密 ...

  6. python怎么捕获mysql报错

    一.前言 最近在运行python脚本的时候,经常出现:mysql server has gone away的错误,导致脚本停止运行.只是代码里面明明已经使用try: except 这种方式来捕获mys ...

  7. mysql报错:Reading table information for completion of table and column names

    一.前言 在使用命令行打开数据库的时候,报错如标题所示.这里总结记录一下. 二.错误原因 1.锁表的原因 参考链接:https://blog.csdn.net/ssergsw/article/deta ...

  8. mysql报错3534_win7下安装MYSQL报错:MYSQL 服务无法启动的3534问题

    上午在win7下安装MYSQL,只到"net start mysql"这一步报错:3534的错误: 于是在百度中搜索关键字"mysql服务无法启动3534". ...

  9. 解决MySQL报错ERROR 2002 (HY000)【转】

    今天在为新的业务线搭架数据库后,在启动的时候报错 root@qsbilldatahis-db01:/usr/local/mysql/bin# ./mysql ERROR 2002 (HY000): C ...

最新文章

  1. Python培训分享:Python发展前景怎么样?
  2. centos7下安装intel Media Server Studio记录
  3. cad中简单流程图制作_想要又快又好的画出世界级的流程图,这样牛掰的方法一定要知道...
  4. OpenCV的数据类型——基础数据类型
  5. P5714 【深基3.例7】肥胖问题--python3实现
  6. java 课后习题 判断两个圆是否相交 圆和直线的位置关系
  7. Flutter TextButton 详细使用配置、Flutter ButtonStyle样式概述实践
  8. Latex——伪代码算法
  9. 【渝粤教育】国家开放大学2019年春季 1013金融统计分析 参考试题
  10. python模态窗口_python webdriver 对模态窗口的处理
  11. 人脸识别7-人脸图片相似度
  12. 银行叫号排队系统C语言,【分享】C语言 银行取票排队系统
  13. 生成android 证书
  14. 图形界面 II: 设置库的事件处理函数 (第三章)
  15. 国内从事机器视觉领域的公司(转)
  16. 爱是瞬间的美,情是永恒的痛
  17. 西数 MyBook 西部数据硬盘盒 WD MyBook 盒子破解使用普通SATA硬盘
  18. 基于用户协同过滤算法的电影打分与推荐
  19. 电流转电压模块4-20mA转0-3.3/5V/10V/15V转换变送器电路原理解析
  20. Python基础知识总结

热门文章

  1. STM32F103ZET6 GPIO的使用
  2. 【高级】分表和分区的区别、分库分表介绍与区别
  3. Nginx的启动、停止、重启
  4. 论 BUG调试与(程序猿)初学者
  5. IOS autosizing(设置控件的固定位置大小)
  6. Linux 账户信息显示和实现账户安全
  7. 项目展示-新浪微博客户端
  8. 52 - 算法- leetcode 14 最长公共前缀
  9. 在类内定义成员函数、在类外定义成员函数、计算长方体的体积【C++面向对象编程类的使用经典案例】
  10. tdbgrid 数据类型输入错误 vb_VB编程从起始到普及历程了解一下