登录
DROP INDEX
DROP INDEX — 删除索引
概要
DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
说明
DROP INDEX
从数据库系统中删除现有索引。要执行此命令,您必须是索引的所有者。
参数
CONCURRENTLY
删除索引,而不会锁定索引表上的并发选择、插入、更新和删除操作。正常的
DROP INDEX
在表上获取ACCESS EXCLUSIVE
锁,阻止其他访问,直到索引删除完成。使用此选项,该命令将等待冲突事务完成。使用此选项时,需要注意以下几点。只能指定一个索引名称,并且不支持
CASCADE
选项。(因此,不能以这种方式删除支持UNIQUE
或PRIMARY 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 标准中没有索引的规定。