如何在SQLite中重命名索引?

时间:2017-03-01 11:37:19

标签: sql sqlite

在MySQL等其他数据库中,我可以这样做:

DROP INDEX old_index;
CREATE INDEX new_index ON demo(col1, col2);

SQLite的最佳解决方法是什么?

更新

SQLite似乎不支持这种语法。在哪种情况下,我可以使用的工作。例如:

set columns = select columns indexed by old_index;
DROP INDEX old_index;
CREATE INDEX new_index ON demo(columns);

上述问题是我需要手动找出索引的列。我想要一些可以自动完成的事情,如:

public interface ICustomResponseFilter
{
    Action<IHttpRequest, IHttpResponse, object> GetAction();
}

1 个答案:

答案 0 :(得分:2)

SQLite的ALTER TABLE不支持此功能。只需重新创建它:

DROP INDEX old_index;
CREATE INDEX new_index ON demo([...]);

您可以从架构中获取索引定义:

SELECT sql FROM sqlite_master WHERE type = 'index' AND name = 'old_index';

但是没有机制来修改和执行SQLite内部的结果。