修改username字段的时候,为什么不能再写unique key

来源:3-6 MODIFY和CHANGE关键字的使用

comeonboy1

2018-08-08 18:09:14

视频中ALTER TABLE table_name
MODIFY username VARCHAR(30)NOT NULL UNIQUE KEY;出现警告说是索引值重复。对这一点我不是很理解,也许知道modify的工作过程是不是更好理解点?

写回答

2回答

comeonboy1

提问者

2018-08-08

我忽然再想是不是这样:因为建立UNIQUE KEY约束时,会自动创建一个索引名,默认是字段名。我们在modify字段的unique key约束时,没有写索引名,所以还是默认使用字段名,这样跟原来的索引名字都重复了。所以,我怀疑执行modify语句,是不是先创建一个新字段,然后再删除原来的字段?例如:ALTER TABLE user3 MODIFY username VARCHAR(20) NOT NULL  UNIQUE;这句是不是分两步先是在表中添加一个username VARCHAR(20) NOT NULL  UNIQUE字段,然后再把原来的username VARCHAR(5) NOT NULL UNIQUE删除?

0

chrismorgen

2018-08-08

MODIFY表示修改列的类型,与之一起使用的有CHANGE,表示修改列的名称,出现索引重复你就要检查自己的建表语句是否出现索引重复,或者将你的建表语句语句粘贴上来,方便老师具有针对性的帮助你解决问题,祝学习愉快~

0
hhrismorgen
回复
homeonboy1
h 因为你之前建表的时候username就有UNIQUE约束,你只需要修改字段类型就可以了,不需要在UNIQUE了,修改之后,程序会出现索引值重复的警告,祝学习愉快~
h018-08-09
共2条回复

0 学习 · 4297 问题

查看课程