2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

DROP INDEX

DROP INDEX — 刪除索引

概要

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

描述

DROP INDEX 從資料庫系統中刪除一個已存在的索引。要執行此命令,您必須是索引的所有者。

引數

CONCURRENTLY

在不鎖定表上索引的併發 SELECT、INSERT、UPDATE 和 DELETE 的情況下刪除索引。常規的 DROP INDEX 命令會對錶獲取 ACCESS EXCLUSIVE 鎖,直到索引刪除完成才會阻塞其他訪問。使用此選項,命令將等待直到衝突的事務完成。

使用此選項時需要注意幾個事項。只能指定一個索引名稱,並且不支援 CASCADE 選項。(因此,不支援此方式刪除支援 UNIQUEPRIMARY KEY 約束的索引。)此外,常規的 DROP INDEX 命令可以在事務塊內執行,但 DROP INDEX CONCURRENTLY 不能。最後,分割槽表的索引不能使用此選項刪除。

對於臨時表,DROP INDEX 始終是非併發的,因為沒有其他會話可以訪問它們,而非併發索引刪除更便宜。

IF EXISTS

如果索引不存在,則不報錯。在這種情況下會發出一個通知。

name

要刪除的索引的名稱(可以選擇是否包含模式限定)。

CASCADE

自動刪除依賴於該索引的物件,以及反過來依賴於那些物件的全部物件(參見 第 5.15 節)。

RESTRICT

如果任何物件依賴於該索引,則拒絕刪除該索引。這是預設行為。

示例

此命令將刪除索引 title_idx

DROP INDEX title_idx;

相容性

DROP INDEXPostgreSQL 的語言擴充套件。SQL 標準中沒有提供索引的規定。

另請參閱

CREATE INDEX

提交更正

如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表格 報告文件問題。