修改username字段的时候,为什么不能再写unique key
视频中ALTER TABLE table_name
MODIFY username VARCHAR(30)NOT NULL UNIQUE KEY;出现警告说是索引值重复。对这一点我不是很理解,也许知道modify的工作过程是不是更好理解点?
1
收起
正在回答 回答被采纳积分+1
2回答
comeonboy1
2018-08-08 20:03:29
我忽然再想是不是这样:因为建立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 18:58:00
MODIFY表示修改列的类型,与之一起使用的有CHANGE,表示修改列的名称,出现索引重复你就要检查自己的建表语句是否出现索引重复,或者将你的建表语句语句粘贴上来,方便老师具有针对性的帮助你解决问题,祝学习愉快~
Java数据库开发与实战应用2018版
- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星