DROP AGGREGATE用於移除一個現有的聚集合函式。
簡介
DROP AGGREGATE移除一個現有的聚集合函式。要執行這個命令,目前使用者必須是該聚集合函式的擁有者。
文法
DROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [, ...] [ CASCADE | RESTRICT ]
這裡aggregate_signature是:
* |
[ argmode ] [ argname ] argtype [ , ... ] |
[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]參數
IF EXISTS如果該聚集不存在則不要拋出一個錯誤,而是發出一個提示。name一個現有聚集合函式的名稱(可以是模式限定的)。argmode一個參數的模式:IN或VARIADIC。 如果被忽略,預設值是IN。argname一個參數的名稱。注意DROP AGGREGATE並不真正關心參數名稱,因為決定聚集合函式的身份時只需要參數資料類型。argtype該聚集合函式所操作的一個輸入資料類型。要引用一個零參數的聚集合函式,寫來替代參數說明列表。要引用一個有序集聚集合函式,在直接和聚集參數說明之間寫上ORDER BY。CASCADE自動刪除依賴於該聚集合函式的對象(例如使用它的視圖),然後刪除所有依賴於那些對象的對象。RESTRICT如果有任何對象依賴於該聚集合函式,則拒絕刪除它。這是預設值。
說明
ALTER AGGREGATE下描述了另一種引用有序集聚集的文法。
樣本
為類型integer移除聚集合函式myavg:
DROP AGGREGATE myavg(integer);移除假想集聚集合函式myrank,該函數接收一個排序列的任意列表和直接參數的一個匹配的列表:
DROP AGGREGATE myrank(VARIADIC "any" ORDER BY VARIADIC "any");在一個命令中刪除多個彙總函式:
DROP AGGREGATE myavg(integer), myavg(bigint);