选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.4 已于 2020 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

DROP INDEX

DROP INDEX — 移除一个索引

大纲

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

描述

DROP INDEX从数据库系统中删除一个现有索引。 要执行此命令,你必须是该索引的拥有者。

参数

CONCURRENTLY

删除索引时,不阻塞该索引所在表上的并发查询、插入、更新和删除。 普通的DROP INDEX 会对该表获取独占锁,阻塞其他访问, 直到索引删除完成。使用该选项时,命令会改为等待相冲突的事务完成。

使用此选项时有若干限制需要注意。只能指定一个索引名,并且不支持 CASCADE选项。(因此,支撑UNIQUEPRIMARY KEY约束的索引不能以这种方式删除。) 另外,普通的DROP INDEX可以在事务块内执行, 但DROP INDEX CONCURRENTLY不可以。

对于临时表,DROP INDEX始终是非并发的, 因为没有其他会话可以访问它们,而且非并发删除索引的代价更低。

IF EXISTS

如果该索引不存在,则不要抛出错误。这种情况下会发出一条提示。

name

要移除的索引名称(可以被模式限定)。

CASCADE

自动删除依赖于该索引的对象。

RESTRICT

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

示例

此命令会删除索引title_idx

DROP INDEX title_idx;

兼容性

DROP INDEXPostgreSQL 的一种语言扩展。SQL 标准中没有关于索引的规定。

另见

CREATE INDEX

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。