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
要移除的索引名稱(可以選擇加上 schema 限定)。
CASCADE
自動刪除依賴於該索引的物件,進而刪除所有依賴於這些物件的物件(參見 第 5.15 節)。
RESTRICT
如果任何物件依賴於該索引,則拒絕刪除該索引。 這是預設值。
此指令將移除索引 title_idx
DROP INDEX title_idx;
DROP INDEX
是 PostgreSQL 語言擴充功能。 SQL 標準中沒有關於索引的規定。
如果您在文件中看到任何不正確的地方、與特定功能的體驗不符或需要進一步澄清的地方,請使用此表單來回報文件問題。