震惊!我的表竟然无法插入相同的数据

前言

今天在MySQL中写了一个更改数据的指令,结果发生了下图的错误。
关键字“ project.classify”的条目“ TS”重复,报了 这个错的时候,又让我想起了前几天我向表中插入数据时也出现了如下的报错。
在这里插入图片描述

经过

这让我感到很迷惑,这些列又没有主键限制,为什么还会显示无法输入相同值。
https://zhidao.baidu.com/question/194948259.html

这两列肯定不是主键,这让我想起了我会不会是在建立这个表的时候给这列添加了主键设置。翻开我的记录,,,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9wzuAFHe-1584208522204)(E8213A6EB41743339AA99E9F369F4F00)]
果然如此。

结果

去掉这些唯一约束

ALTER TABLE表名 DROP INDEX 列名;
ALTER TABLE teacher DROP INDEX tname;
ALTER TABLE project DROP INDEX classify;
ALTER TABLE project DROP INDEX pname;

再次执行指令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rvjUPxz9-1584208522205)(EAF36A12BA2243F4BEB7FA232B75B0A0)]
输出结果终于正常
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nFNyeTHv-1584208522205)(41804B6678CD419D9B29F9C5E6ADB358)]

补充:

列中的数据不能重复的约束,一是主键列不能重复;二是unique key限制的列也不能重复。MySQL唯一约束(UniqueKey)要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。在定义完列之后直接使用 UNIQUE 关键字指定唯一约束,
语法规则如下:

定义唯一约束

<字段名> <数据类型> UNIQUE

在修改表时添加唯一约束

ALTER TABLE <数据表名> ADD CONSTRAINT <唯一约束名> UNIQUE(<列名>);

删除唯一约束

ALTER TABLE <表名> DROP INDEX <唯一约束名>;

链接:
https://zhidao.baidu.com/question/194948259.html
https://www.cnblogs.com/wuhan729/p/8443119.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值