前言
今天在MySQL中写了一个更改数据的指令,结果发生了下图的错误。
关键字“ project.classify”的条目“ TS”重复,报了 这个错的时候,又让我想起了前几天我向表中插入数据时也出现了如下的报错。
经过
这让我感到很迷惑,这些列又没有主键限制,为什么还会显示无法输入相同值。
https://zhidao.baidu.com/question/194948259.html
这两列肯定不是主键,这让我想起了我会不会是在建立这个表的时候给这列添加了主键设置。翻开我的记录,,,
果然如此。
结果
去掉这些唯一约束
ALTER TABLE表名 DROP INDEX 列名;
ALTER TABLE teacher DROP INDEX tname;
ALTER TABLE project DROP INDEX classify;
ALTER TABLE project DROP INDEX pname;
再次执行指令
输出结果终于正常
补充:
列中的数据不能重复的约束,一是主键列不能重复;二是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