Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

DROP INDEX

DROP INDEX——删除索引

概要

DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

描述

DROP INDEX从数据库系统中删除现有索引。要执行此命令,你必须是该索引的所有者。

参数

CONCURRENTLY

在不锁定索引所在表上并发的选择、插入、更新和删除的情况下放弃索引。执行正常的 DROP INDEX 会获取表上的 ACCESS EXCLUSIVE 锁,其他访问会被阻塞,直到放弃索引完成。在此选项中,该命令会等到发生冲突的事务完成。

在此选项的使用中需要知道几个注意事项。仅能指定一个索引名,并且不支持 CASCADE 选项。(因此,以这种方式无法放弃支持 UNIQUEPRIMARY KEY 约束的索引。)另外,可以在事务块中执行常规 DROP INDEX 命令,但是不能执行 DROP INDEX CONCURRENTLY。最后,不能使用此选项放弃分区表上的索引。

对于临时表,DROP INDEX 始终是非并发的,因为没有其他会话可以访问它们,而且非并发的索引放弃开销较低。

IF EXISTS

如果索引不存在,则不会引发错误。在这种情况下会发出通知。

name

需要移除的索引的名称(可选的架构限定)。

CASCADE

自动放弃依赖于该索引的对象,并且依次放弃了依赖于这些对象的所有对象(请参阅 第 5.15 节)。

RESTRICT

如果任何对象依赖于该索引,则拒绝放弃该索引。这是默认选项。

示例

此命令将移除索引 title_idx

DROP INDEX title_idx;

兼容性

DROP INDEXPostgreSQL 语言扩展。没有 SQL 标准的索引规定。

另请参见

CREATE INDEX