DROP AGGREGATE

删除一个聚合函数。

概要

DROP AGGREGATE [IF EXISTS] <name> ( <aggregate_signature> ) [, ...] [CASCADE | RESTRICT]

where <aggregate_signature> is:

* |
[ <argmode> ] [ <argname> ] <argtype> [ , ... ] |
[ [ <argmode> ] [ <argname> ] <argtype> [ , ... ] ] ORDER BY [ <argmode> ] [ <argname> ] <argtype> [ , ... ]
Description
DROP AGGREGATE removes an existing aggregate function. To run this command the current user must be the owner of the aggregate function.

参数

  • IF EXISTS
    • 如果聚合不存在,则不抛出错误。此时将发出一个通知。
  • name
    • 现有聚合函数的名称(可选带模式限定)。
  • argmode
    • 参数模式:IN 或 VARIADIC。若省略,默认为 IN。
  • argname
    • 参数的名称。请注意,DROP AGGREGATE 实际上并不关注参数名称,因为仅需参数数据类型即可确定聚合函数的身份。
  • argtype
    • 聚合函数操作的输入数据类型。要引用零参数聚合函数,请用 * 代替参数规格列表。要引用有序集聚合函数,请在直接参数规格与聚合参数规格之间添加 ORDER BY。
  • CASCADE
    • 自动删除依赖聚合函数的对象(例如使用该函数的视图),并进一步删除所有依赖这些对象的对象。
  • RESTRICT
    • 如果存在依赖该聚合函数的对象,则拒绝删除该聚合函数。此为默认行为。

注意

有关引用有序集合聚合的替代语法,请参阅ALTER AGGREGATE

示例

要删除针对整数类型的聚合函数 myavg:

DROP AGGREGATE myavg(integer);

移除假设集聚合函数 myrank,该函数接受任意排序列列表及其对应的直接参数列表:

DROP AGGREGATE myrank(VARIADIC "any" ORDER BY VARIADIC "any");

要通过一条命令移除多个聚合函数:

DROP AGGREGATE myavg(integer), myavg(bigint);

兼容性

SQL标准中不存在DROP AGGREGATE语句。

另见

ALTER AGGREGATE, CREATE AGGREGATE