是否可以将 MySQL 唯一索引更改为非唯一索引而不重新创建它
Is it possible to alter a MySQL unique index to non-unique without recreating it
是否可以将 MySQL 唯一索引更改为非唯一索引而不重新创建它(DROP
和 CREATE
)?
我正在使用 MySQL 版本 8.0.19。
不,在 MySQL 中,不可能在不删除并重新创建索引的情况下更改索引的定义。没有 ALTER INDEX
声明。
更正:您可以重命名索引而不重建它。您可以创建索引 visible/invisible 而无需重建它。
如果您的意思是要避免删除唯一索引,请阅读 Bill Karwin 的回答,其中正确描述了这是不可能的。
但是,如果您的意思是要在不删除和重新创建 table 的情况下重新创建索引,那么这当然是可能的,例如:
DROP INDEX indexname on tablename;
然后
CREATE UNIQUE indexname ON tablename(columnname);
是否可以将 MySQL 唯一索引更改为非唯一索引而不重新创建它(DROP
和 CREATE
)?
我正在使用 MySQL 版本 8.0.19。
不,在 MySQL 中,不可能在不删除并重新创建索引的情况下更改索引的定义。没有 ALTER INDEX
声明。
更正:您可以重命名索引而不重建它。您可以创建索引 visible/invisible 而无需重建它。
如果您的意思是要避免删除唯一索引,请阅读 Bill Karwin 的回答,其中正确描述了这是不可能的。
但是,如果您的意思是要在不删除和重新创建 table 的情况下重新创建索引,那么这当然是可能的,例如:
DROP INDEX indexname on tablename;
然后
CREATE UNIQUE indexname ON tablename(columnname);