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.15 节)。
RESTRICT
如果任何对象依赖于索引,则拒绝删除索引。这是默认值。
此命令将删除索引 title_idx
DROP INDEX title_idx;
DROP INDEX
是 PostgreSQL 语言扩展。SQL 标准中没有关于索引的规定。
如果您在文档中看到任何不正确的内容、与您对特定功能的体验不符的内容或需要进一步澄清的内容,请使用 此表单 报告文档问题。