DROP SUBSCRIPTION用於刪除資料庫叢集中的一個訂閱。
簡介
DROP SUBSCRIPTION刪除資料庫叢集中的一個訂閱。
只有超級使用者才可以刪除訂閱。
如果訂閱與複製槽相關聯,就不能在事務塊內部執行DROP SUBSCRIPTION(可以使用ALTER SUBSCRIPTION取消關聯複製槽)。
文法
DROP SUBSCRIPTION [ IF EXISTS ] name [ CASCADE | RESTRICT ]參數
name要刪除的訂閱的名稱。CASCADERESTRICT這些關鍵詞沒有任何作用,因為訂閱沒有依賴關係。
說明
當刪除與遠程主機(正常狀態)上的複製槽相關聯的訂閱時,DROP SUBSCRIPTION 將串連到遠程主機,並嘗試刪除該複製槽,作為其操作的一部分。這是必要的, 以便釋放遠程主機上為訂閱分配的資源。如果失敗,因為遠程主機不可訪問, 或者因為遠程複製槽不能被刪除,或者複製槽不存在或從不存在, 則DROP SUBSCRIPTION命令將失敗。要在這種情況下繼續, 請執行ALTER SUBSCRIPTION ... SET (slot_name = NONE) 來解除複製槽與訂閱的關聯。之後,DROP SUBSCRIPTION 將不再嘗試對遠程主機執行任何操作。請注意,如果遠程複製槽仍然存在, 則應手動刪除該插槽;否則將繼續保留 WAL,最終可能導致磁碟空間不足。
如果訂閱與複製槽相關聯,那麼不能在事務塊內部執行DROP SUBSCRIPTION。
樣本
刪除一個訂閱:
DROP SUBSCRIPTION mysub;