问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请大神来帮下忙解决这个问题关于mysql数据的1005错误

发布网友 发布时间:2023-02-26 11:24

我来回答

2个回答

热心网友 时间:2024-11-01 00:58

外键错误,可能是语法不支持,你可以尝试一些foreign key 分两行来写,我这边也帮你试试。

热心网友 时间:2024-11-01 00:58

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

在使用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 procts;
create table procts(
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,
proct_id int not null,
quantity int not null default 0,
unit_price decimal(10,2) not null,
constraint fk_items_proct foreign key (proct_id) references procets(id),
index(proct_id)
primary key(id)
)type=innodb;
出现的报错:
ERROR 1005: Can't create table
主要问题以及解决办法是:
1,MySQL支持外键约束,并提供与其它DB相同的功能,但表类型必须为 InnoDB
2、建外键的表的那个列要加上index
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 韩式隆鼻术的优势是什么? 洗牙后可以电动牙刷吗 洗牙后多久可以刷牙 梦见腐朽的棺材触碰到死尸 男人自愿结扎需要什么证件 公益活动的意义是什么 梦见别的女人来事 苹果6s不自动关闭屏幕 梦见棺尸有发臭腐烂的东西是什么预兆? 代理记账报税企业经营范围 代理记账公司经营范围 古田银耳的产品加工 ...赵紫林的画值钱吗?我有一副大概五尺的雄鸡报晓图大概能值多少钱?还... 龙须草叶子发黄怎么办 梦见父母杀小孩吃 梦见杀小孩吃 梦见别人杀小孩吃肉 梦见有人杀小孩吃 王者荣耀携手共山河怎么获得 与气候有关的谚语 英语英语英语 one作代词的用法,最好能举例说明,越详细越好, 兰花叶子发黄发黑如何处理 兰花尖发黑发黄怎么处理 兰草叶子发黑怎么处理? 孕妇胎儿发育不良 孕妇胎儿发育不良好治吗 《命中注定我爱你韩版》台词 什么样的人适合做腿部吸脂手术 植,亭亭净植的‘植’什么意思? 三个人在笑其两个人在说中间的人好是什么成语 爱莲说和陋室铭关键词翻译 三个人在一块儿两个人说你好另一个人说哈喽四字成语 写给西部孩子的一封信 礼盒蝴蝶结的打法视频 初中生2分钟自我介绍 京东a2货车司机工作时间 北京顺义京东物流分拣员怎样工作 京东快递司机怎么样 qq微信公众号查看qq申报进度怎样查,什么时候可以完成。 薏仁水用完要洗脸吗 主要取决于你的薏仁水 中医治疗脂溢性皮炎方法多,速看