求助:ERROR 1062 (23000):Duplicate Entry

dinoyeong 2016-07-24 09:55:51
刚刚开始自学mysql的小白,对着教科书边学边敲,结果刚刚进行到insert into语句就把我搞晕了,求助论坛各位前辈。多谢啦!

create TABLE section (
course_id varchar(8),
sec_id varchar(8),
semester varchar(6),
year numeric (4,0),
building varchar(15),
room_number varchar(7),
time_slot varchar(4),
PRIMARY KEY (course_id,sec_id,semester,year));

之后我进行插入值操作
insert into section values('BIO-101','1','Summer','2009','Painter','514','B');
第一条插入成功,我就继续进行后续值的插入
insert into section values('BIO-301','1','Summer','2010','Painter','514','A');
就出现了错误,报错ERROR 1062 (23000):Duplicate Entry '1' for key 'sec_id'。
后面的元组不管输入什么值,只要是sec_id值是1,就一直报错。

我在网上搜索,没有找到答案,希望前辈能指点我一下,都是主码,为什么就是sec_id不允许重复呢?

谢谢大家
...全文
4750 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
dinoyeong 2016-07-27
  • 打赏
  • 举报
回复
引用 12 楼 wangjian0228 的回复:
[quote=引用 11 楼 dinoyeong 的回复:] [quote=引用 8 楼 wangjian0228 的回复:] [quote=引用 6 楼 dinoyeong 的回复:] [quote=引用 3 楼 zjcxc 的回复:] UNIQUE KEY `sec_id` (`sec_id`), --------------------------- 你设置了唯一 KEY 啊,当然不能再 insert 相同的值了
多谢指正~~~~(>_<)~~~~ 结果我的UNIQUE外键还不能被删了,我好像做了好多无用功。。。[/quote] ALTER TABLE mytable DROP FOREIGN KEY sec_id[/quote] 多谢~~ 我刚才用了一下,mysql> alter table section drop foreign key sec_id; ERROR 1091 (42000): Can't DROP 'sec_id'; check that column/key exists 奇了怪了啊,sec_id明明存在的,为什么它说不存在呢。。。[/quote] (sec_id), 要括起来[/quote] 可能是我这个版本不对吧,error 1064,说我语法错误。。。
致命的西瓜 2016-07-27
  • 打赏
  • 举报
回复
引用 11 楼 dinoyeong 的回复:
[quote=引用 8 楼 wangjian0228 的回复:] [quote=引用 6 楼 dinoyeong 的回复:] [quote=引用 3 楼 zjcxc 的回复:] UNIQUE KEY `sec_id` (`sec_id`), --------------------------- 你设置了唯一 KEY 啊,当然不能再 insert 相同的值了
多谢指正~~~~(>_<)~~~~ 结果我的UNIQUE外键还不能被删了,我好像做了好多无用功。。。[/quote] ALTER TABLE mytable DROP FOREIGN KEY sec_id[/quote] 多谢~~ 我刚才用了一下,mysql> alter table section drop foreign key sec_id; ERROR 1091 (42000): Can't DROP 'sec_id'; check that column/key exists 奇了怪了啊,sec_id明明存在的,为什么它说不存在呢。。。[/quote] (sec_id), 要括起来
dinoyeong 2016-07-27
  • 打赏
  • 举报
回复
引用 8 楼 wangjian0228 的回复:
[quote=引用 6 楼 dinoyeong 的回复:] [quote=引用 3 楼 zjcxc 的回复:] UNIQUE KEY `sec_id` (`sec_id`), --------------------------- 你设置了唯一 KEY 啊,当然不能再 insert 相同的值了
多谢指正~~~~(>_<)~~~~ 结果我的UNIQUE外键还不能被删了,我好像做了好多无用功。。。[/quote] ALTER TABLE mytable DROP FOREIGN KEY sec_id[/quote] 多谢~~ 我刚才用了一下,mysql> alter table section drop foreign key sec_id; ERROR 1091 (42000): Can't DROP 'sec_id'; check that column/key exists 奇了怪了啊,sec_id明明存在的,为什么它说不存在呢。。。
dinoyeong 2016-07-27
  • 打赏
  • 举报
回复
引用 7 楼 ACMAIN_CHM 的回复:
Cannot drop index 'sec_id' ; needed in foreign key constraint; 错误提示很清楚了, 如果英文不方便,可以先到百度中翻译一下。
我又用show create table查了一下别的表,发现一个teaches表和section表外键关联 | teaches | CREATE TABLE `teaches` ( `id` varchar(5) NOT NULL DEFAULT '', `course_id` varchar(8) NOT NULL DEFAULT '', `sec_id` varchar(8) NOT NULL DEFAULT '', `semester` varchar(6) NOT NULL DEFAULT '', `year` decimal(4,0) NOT NULL DEFAULT '0', PRIMARY KEY (`id`,`course_id`,`sec_id`,`semester`,`year`), KEY `course_id_t` (`course_id`), KEY `sec_id` (`sec_id`), KEY `semester` (`semester`), KEY `year` (`year`), CONSTRAINT `course_id_sec` FOREIGN KEY (`course_id`) REFERENCES `section` (`course_id`), CONSTRAINT `course_id_t` FOREIGN KEY (`course_id`) REFERENCES `section` (`course_id`), CONSTRAINT `id` FOREIGN KEY (`id`) REFERENCES `instructor` (`id`), CONSTRAINT `sec_id` FOREIGN KEY (`sec_id`) REFERENCES `section` (`sec_id`), CONSTRAINT `semester` FOREIGN KEY (`semester`) REFERENCES `section` (`semester`), CONSTRAINT `year` FOREIGN KEY (`year`) REFERENCES `section` (`year`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | 实在不好意思,能不能讲解一下我接下来该怎么办啊。。
dinoyeong 2016-07-27
  • 打赏
  • 举报
回复
引用 7 楼 ACMAIN_CHM 的回复:
Cannot drop index 'sec_id' ; needed in foreign key constraint; 错误提示很清楚了, 如果英文不方便,可以先到百度中翻译一下。
实在不好意思啊,英文的话没问题,“因为被设置为外键所以不能删除sec_id”,我不是很懂,我很困惑的是接下来该怎么做呢?不允许我删除外键,那是要改变另一个表的结构么?
致命的西瓜 2016-07-26
  • 打赏
  • 举报
回复
引用 6 楼 dinoyeong 的回复:
[quote=引用 3 楼 zjcxc 的回复:] UNIQUE KEY `sec_id` (`sec_id`), --------------------------- 你设置了唯一 KEY 啊,当然不能再 insert 相同的值了
多谢指正~~~~(>_<)~~~~ 结果我的UNIQUE外键还不能被删了,我好像做了好多无用功。。。[/quote] ALTER TABLE mytable DROP FOREIGN KEY sec_id
ACMAIN_CHM 2016-07-26
  • 打赏
  • 举报
回复
Cannot drop index 'sec_id' ; needed in foreign key constraint; 错误提示很清楚了, 如果英文不方便,可以先到百度中翻译一下。
ACMAIN_CHM 2016-07-25
  • 打赏
  • 举报
回复
UNIQUE KEY `course_id` (`course_id`), UNIQUE KEY `sec_id` (`sec_id`), UNIQUE KEY `semester` (`semester`), UNIQUE KEY `year` (`year`), 这些在你顶楼的CREATE TABLE语句中没有啊? 谁偷偷给你加上的?去掉即可。
dinoyeong 2016-07-25
  • 打赏
  • 举报
回复
引用 3 楼 zjcxc 的回复:
UNIQUE KEY `sec_id` (`sec_id`), --------------------------- 你设置了唯一 KEY 啊,当然不能再 insert 相同的值了
多谢指正~~~~(>_<)~~~~ 结果我的UNIQUE外键还不能被删了,我好像做了好多无用功。。。
dinoyeong 2016-07-25
  • 打赏
  • 举报
回复
引用 4 楼 ACMAIN_CHM 的回复:
UNIQUE KEY `course_id` (`course_id`), UNIQUE KEY `sec_id` (`sec_id`), UNIQUE KEY `semester` (`semester`), UNIQUE KEY `year` (`year`), 这些在你顶楼的CREATE TABLE语句中没有啊? 谁偷偷给你加上的?去掉即可。
啊,我想起来了,这个属性做了另一个表的外键。。。我刚开始按照书上的代码一点点敲进去,结果总是设置不成功外键,忘记在哪个页面搜到,需要设置UNIQUE才能设置成功外键,我就设成了UNIQUE,果然外键是成功了,现在insert又出现问题。。。 我搜到用 alter TABLE section DROP INDEX sec_id; 语句去除UNIQUE属性,结果又报错了~~~~(>_<)~~~~ ERROR 1553 (HY000):Cannot drop index 'sec_id' ; needed in foreign key constraint;
zjcxc 2016-07-25
  • 打赏
  • 举报
回复
UNIQUE KEY `sec_id` (`sec_id`), --------------------------- 你设置了唯一 KEY 啊,当然不能再 insert 相同的值了
dinoyeong 2016-07-24
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
贴出 show create table section ; 的结果。
| section | CREATE TABLE `section` ( `course_id` varchar(8) NOT NULL DEFAULT '', `sec_id` varchar(8) NOT NULL DEFAULT '', `semester` varchar(6) NOT NULL DEFAULT '', `year` decimal(4,0) NOT NULL DEFAULT '0', `building` varchar(15) DEFAULT NULL, `room_number` varchar(7) DEFAULT NULL, `time_slot_id` varchar(4) DEFAULT NULL, PRIMARY KEY (`course_id`,`sec_id`,`semester`,`year`), UNIQUE KEY `course_id` (`course_id`), UNIQUE KEY `sec_id` (`sec_id`), UNIQUE KEY `semester` (`semester`), UNIQUE KEY `year` (`year`), CONSTRAINT `course_id` FOREIGN KEY (`course_id`) REFERENCES `course` (`course_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | 谢谢~
ACMAIN_CHM 2016-07-24
  • 打赏
  • 举报
回复
贴出 show create table section ; 的结果。

57,063

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧