向现有的多列索引中添加列

15
在我的表中,我有一个由(name,folder)两列组成的多列索引。
最近我添加了一个名为date的新列,我想在其中加入一个索引,但我想将其放入现有的多列索引中。
当我执行Alter table books add index theindex (date);时,我得到了Duplicate key name 'theindex'的错误提示。
我如何在不创建新键的情况下向索引中添加另一列?
1个回答

24

只需将语法更改为以下方式以向索引添加新列:

ALTER table `books` DROP INDEX theindex;
ALTER table `books` ADD INDEX theindex (`date`, `time`);

但是我想把它放在同一个ID下。 - user4757174
@user4757174 你不能有两个具有相同ID的索引。 - Praveen Kumar Purushothaman
如果我使用多列索引,例如在创建索引查询中放置两个列,则可以... - user4757174
哦,等等……我想我明白你想做什么了。你只需要按照这种方式进行更新。请参考已更新的答案。 - Praveen Kumar Purushothaman
2
在旧版本中,使用相同的ALTER语句执行DROPADD操作可以提高两倍的速度。 - Rick James
1
如果您不需要保留索引名称并希望在模式迁移期间保持查询性能,请先添加新的多列索引,然后再删除旧的索引。 - Edward Anderson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接