DROP INDEX用於從資料庫系統中移除一個已有的索引。
簡介
DROP INDEX從資料庫系統中移除一個已有的索引。要執行這個命令你必須是該索引的擁有者。
文法
DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]參數
CONCURRENTLY刪除索引並且不阻塞在索引基表上的並發選擇、插入、更新和刪除操作。一個普通的DROP INDEX會要求該表上的獨佔鎖定,這樣會阻塞其他訪問直至索引刪除完成。通過這個選項,該命令會等待直至衝突事務完成。
在使用這個選項時有一些需要注意的事情。只能指定一個索引名稱,並且不支援CASCADE選項(因此,一個支援UNIQUE或者 PRIMARY KEY約束的索引不能以這種方式刪除)。還有,常規的DROP INDEX命令可以在一個事務塊內執行,而 DROP INDEX CONCURRENTLY不能。 最後,不能使用此選項刪除分區表上的索引。
對於暫存資料表,DROP INDEX始終是非並發的,因為沒有其他會話可以訪問它們,而且丟棄非並發索引更加便宜。
IF EXISTS如果該索引不存在則不要拋出一個錯誤,而是發出一個提示。
name要移除的索引的名稱(可以是模式限定的)。
CASCADE自動刪除依賴於該索引的對象,然後刪除所有依賴於那些對象的對象。
RESTRICT如果有任何對象依賴於該索引,則拒絕刪除它。這是預設值。
樣本
移除索引title_idx:
DROP INDEX title_idx;