當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


PostgreSQL DROP INDEX用法及代碼示例

在 PostgreSQL 中,DROP INDEX刪除現有索引的語句。

用法:
DROP INDEX  [ CONCURRENTLY]
[ IF EXISTS ]  index_name 
[ CASCADE | RESTRICT ];

讓我們分析以上語法:

  • index_name:這用於在後麵指定要刪除的索引的名稱下降 index 條款。
  • 如果存在:嘗試刪除不存在的索引將導致錯誤。為避免這種情況,您可以使用如果存在選項。如果您刪除不存在的索引如果存在, PostgreSQL 改為發出通知。
  • CASCADE:如果索引有依賴對象,則使用CASCADE自動刪除這些對象和所有對象的選項依靠在那些對象上。
  • 嚴格:這個RESTRICT選項指示 PostgreSQL 拒絕刪除索引,如果有任何對象依賴它。這下降 index 用途RESTRICT默認情況下。
  • 同時: 當您執行 DROP INDEX 語句時,PostgreSQL 會獲取該表的排他鎖並阻止其他訪問,直到索引刪除完成。要強製命令在刪除索引之前等待衝突事務完成,您可以使用 CONCURRENTLY 選項。

出於舉例的目的,我們將使用演員 表從樣本數據庫為演示。

例:



以下語句為first_name 的列演員 表:

CREATE INDEX idx_actor_first_name 
ON actor (first_name);

有時,該詢問優化器不使用索引。例如,下麵的語句查找名為‘的actor約翰'

SELECT * FROM actor
WHERE first_name = 'John';

查詢沒有使用idx_actor_first_name 之前定義的索引如以下 EXPLAIN 語句中所述:

EXPLAIN SELECT *
FROM actor
WHERE first_name = 'John';

這是因為查詢優化器認為隻掃描整個表來定位行更為優化。因此,該idx_actor_first_name在這種情況下沒有用,我們需要刪除它:

DROP INDEX idx_actor_first_name;

輸出:

相關用法


注:本文由純淨天空篩選整理自RajuKumar19大神的英文原創作品 PostgreSQL – DROP INDEX。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。