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