如何在SQLite中重命名索引?

雅亚·乌丁

在其他数据库(例如MySQL)中,我可以这样做:

ALTER TABLE demo RENAME INDEX old_index TO new_index

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

更新资料

SQLite似乎不支持此语法。在这种情况下,我可以使用一种解决方法。例如:

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

上面的问题是我需要手动找出对哪些列进行了索引。我想要可以自动完成的操作,例如:

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

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内部修改和执行结果。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章