支援的版本: 目前 (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

要移除的索引名稱(可以選擇加上 schema 限定)。

CASCADE

自動刪除依賴於該索引的物件,進而刪除所有依賴於這些物件的物件(參見 第 5.15 節)。

RESTRICT

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

範例

此指令將移除索引 title_idx

DROP INDEX title_idx;

相容性

DROP INDEXPostgreSQL 語言擴充功能。 SQL 標準中沒有關於索引的規定。

參見

CREATE INDEX

提交更正

如果您在文件中看到任何不正確的地方、與特定功能的體驗不符或需要進一步澄清的地方,請使用此表單來回報文件問題。