DROP SUBSCRIPTION — 移除訂閱
DROP SUBSCRIPTION [ IF EXISTS ] name
[ CASCADE | RESTRICT ]
DROP SUBSCRIPTION
從資料庫叢集中移除一個訂閱。
要執行此命令,使用者必須是該訂閱的所有者。
如果訂閱與複製槽相關聯,則無法在交易區塊內執行DROP SUBSCRIPTION
。(您可以使用 ALTER SUBSCRIPTION
來取消設定該槽。)
name
要刪除的訂閱名稱。
CASCADE
RESTRICT
這些關鍵字沒有任何作用,因為訂閱上沒有任何依賴關係。
當刪除與遠端主機上的複製槽(正常狀態)相關聯的訂閱時,DROP SUBSCRIPTION
將連線到遠端主機並嘗試刪除複製槽(以及任何剩餘的資料表同步槽)作為其操作的一部分。 這是必要的,以便釋放在遠端主機上為訂閱分配的資源。 如果此操作失敗,原因可能是遠端主機無法連線,或遠端複製槽無法刪除或不存在或從未存在,則 DROP SUBSCRIPTION
命令將失敗。 若要在這種情況下繼續,請先透過執行 ALTER SUBSCRIPTION ... DISABLE
來停用訂閱,然後透過執行 ALTER SUBSCRIPTION ... SET (slot_name = NONE)
將其與複製槽分離。 之後,DROP SUBSCRIPTION
將不再嘗試在遠端主機上執行任何動作。 請注意,如果遠端複製槽仍然存在,則應手動刪除它(以及任何相關的資料表同步槽); 否則它/它們將繼續保留 WAL,並可能最終導致磁碟填滿。另請參閱 第 29.2.1 節。
如果訂閱與複製槽相關聯,則無法在交易區塊內執行 DROP SUBSCRIPTION
。
刪除一個訂閱
DROP SUBSCRIPTION mysub;
DROP SUBSCRIPTION
是一個 PostgreSQL 擴充功能。
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表格來報告文件問題。