PostgreSQL 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
[ , ... ]
描述
DROP AGGREGATE
移除一个现有的 聚集函数。要执行这个命令,当前用户必须是该聚集函数的拥有者。
参数
IF EXISTS
-
如果该聚集不存在则不要抛出一个错误,而是发出一个提示。
name
-
一个现有聚集函数的名称(可以是模式限定的)。
argmode
-
一个参数的模式:
IN
或VARIADIC
。 如果被忽略,默认值是IN
。 argname
-
一个参数的名称。注意
DROP AGGREGATE
并不真正关心参数名称,因为决定聚集函数的身份时只需要参数数据类型。 argtype
-
该聚集函数所操作的一个输入数据类型。要引用一个零参数的聚集函数,写
*
来替代参数说明列表。要引用一个有序集聚集函数,在直接和 聚集参数说明之间写上ORDER BY
。 CASCADE
-
自动删除依赖于该聚集函数的对象(例如使用它的视图),然后删除所有 依赖于那些对象的对象(见第 5.14 节)。
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);
兼容性
在 SQL 标准中没有DROP AGGREGATE
语句。