Skip to content

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.14 节)。

RESTRICT

如果任何对象依赖于该索引,则拒绝删除该索引。这是默认值。

示例

此命令将删除索引title_idx

DROP INDEX title_idx;

兼容性

DROP INDEX是PostgreSQL语言扩展。SQL 标准中没有索引的规定。

另请参阅

CREATE INDEX