我必须编写一个迁移命令来从索引中删除一列。现在让我们假设我有table1,它有col1 and col2的索引
我想从索引中删除col1。我在看https://www.postgresql.org/docs/9.4/static/sql-alterindex.html,但似乎我实际上不能删除一列吗?
如果是,是否最好删除该列以及VS如何删除?
此外,如果我需要下调评级,我想做的是反向操作。所以我只是想知道怎么做到这一点
发布于 2018-07-27 22:22:16
更改索引的能力不存在,因为要做到这一点,就必须用新列销毁和重新创建索引。默认情况下,Postgres使用B树创建索引,删除列将导致B树无效。因此,B树需要从头开始构建。
如果您想了解索引在幕后如何工作的更多细节,这是一篇很好的文章:帽下的邮政指数
发布于 2018-07-27 19:44:36
是的,您必须用一个列创建一个新的索引,然后删除一个包含两个列的旧索引。
https://stackoverflow.com/questions/51563505
复制相似问题