DROP INDEX — 删除索引
DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]
DROP INDEX 从数据库系统中删除一个已存在的索引。要执行此命令,您必须是索引的所有者。
CONCURRENTLY在不锁定表上索引的并发 SELECT、INSERT、UPDATE 和 DELETE 的情况下删除索引。常规的 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 标准中没有提供索引的规定。
如果您在文档中发现任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表格 报告文档问题。