是否可以在不重新创建的情况下将MySQL唯一索引更改为非唯一索引(DROP和CREATE)?我使用的是MySQL版本8。0.19.
DROP
CREATE
btqmn9zl1#
不,在MySQL中,如果不删除并重新创建索引,就不可能更改索引的定义。没有ALTER INDEX语句。更正:您可以重命名索引而无需重新构建它。可以使索引可见/不可见,而无需重新生成索引。
ALTER INDEX
ogq8wdun2#
如果你的意思是你想避免删除唯一索引,那么请阅读Bill Karwin的答案,它正确地描述了这是不可能的。但是,如果你想在不删除和重新创建表的情况下重新创建索引,那么这当然是可能的,比如:
DROP INDEX indexname on tablename;
然后
CREATE UNIQUE INDEX indexname ON tablename(columnname);
2条答案
按热度按时间btqmn9zl1#
不,在MySQL中,如果不删除并重新创建索引,就不可能更改索引的定义。没有
ALTER INDEX
语句。更正:您可以重命名索引而无需重新构建它。可以使索引可见/不可见,而无需重新生成索引。
ogq8wdun2#
如果你的意思是你想避免删除唯一索引,那么请阅读Bill Karwin的答案,它正确地描述了这是不可能的。
但是,如果你想在不删除和重新创建表的情况下重新创建索引,那么这当然是可能的,比如:
然后