英文:
Is it possible to remove a column from a composite index on Mysql?
问题
我有一个具有三列唯一索引的表。
现在我需要从这个索引中移除一列。
在这种情况下,最好的选择是什么?
- 是否可以从索引中移除一列?
- 删除现有索引,然后使用相同的名称重新创建它?
英文:
I have a table with a unique index of three columns.
Now I need to remove one column from this index.
What is the best option in this case?
- Is it possible to remove a column from the index?
- Delete the existing index and re-create it with the same name?
答案1
得分: 1
-- 删除现有索引
ALTER TABLE my_table DROP INDEX index_name;
-- 创建一个新的索引,不包括要删除的列
ALTER TABLE my_table ADD INDEX index_name (column1, column2);
或者
-- 修改索引定义,而不重新构建整个表
ALTER TABLE my_table ALGORITHM=INPLACE, DROP INDEX index_name, ADD INDEX index_name (column1, column2);
英文:
-- Drop the existing index
ALTER TABLE my_table DROP INDEX index_name;
-- Create a new index without the column you want to remove
ALTER TABLE my_table ADD INDEX index_name (column1, column2);
or
-- Modify the index definition without rebuilding the entire table
ALTER TABLE my_table ALGORITHM=INPLACE, DROP INDEX index_name, ADD INDEX index_name (column1, column2);
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论