# 删除索引

DROP INDEX — 删除一个索引

# 概要

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

# 描述

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

# 参数

同时

删除索引而不锁定索引表上的并发选择、插入、更新和删除。一个正常的删除索引获得一个访问独家锁定表,阻塞其他访问,直到索引删除可以完成。使用此选项,该命令将等待,直到冲突事务完成。

使用此选项时需要注意几个注意事项。只能指定一个索引名称,并且级联不支持选项。(因此,一个支持独特要么首要的关键不能以这种方式删除约束。)此外,常规删除索引命令可以在事务块内执行,但是同时删除索引不能。最后,不能使用此选项删除分区表上的索引。

对于临时表,删除索引总是非并发的,因为没有其他会话可以访问它们,并且非并发索引下降更便宜。

如果存在

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

姓名

要删除的索引的名称(可选模式限定)。

级联

自动删除依赖于索引的对象,进而删除依赖于这些对象的所有对象(参见第 5.14 节)。

严格

如果有任何对象依赖它,则拒绝删除该索引。这是默认设置。

# 例子

此命令将删除索引title_idx

DROP INDEX title_idx;

# 兼容性

删除索引是 PostgreSQL 语言扩展。SQL 标准中没有关于索引的规定。

# 也可以看看

创建索引