更新时间:2026-02-06 GMT+08:00
分享

DROP AGGREGATE

功能描述

从数据库中删除一个聚集函数。

注意事项

仅聚集函数的所有者可以对该聚集函数进行DROP AGGREGATE操作。

语法格式

DROP AGGREGATE [ IF EXISTS ] name ( argtype [ , ... ] ) [ CASCADE | RESTRICT ];

参数说明

  • IF EXISTS

    判断指定的聚集函数是否存在。

    • 如果指定的聚集函数存在,则删除成功。
    • 如果指定的聚集函数不存在,不会进行删除操作,仅产生一个NOTICE提示,用于告知指定的聚集函数不存在。
  • name

    需要删除的聚集函数,可以使用模式进行具体指定。

  • argtype

    聚集函数操作的输入数据类型。当指定的聚集函数为零参数类型时,请用*代替输入数据类型列表。

  • CASCADE | RESTRICT
    可选,是否级联删除依赖于该聚集函数的对象,默认为RESTRICT。
    • CASCADE:级联删除依赖于该聚集函数的对象。
    • RESTRICT:如果存在依赖于该聚集函数的对象,则拒绝删除该聚集函数。

示例

--创建自定义函数。
gaussdb=# CREATE OR REPLACE FUNCTION int_add(int,int)
 RETURNS int AS $BODY$
DECLARE
BEGIN
 RETURN $1 + $2;
END;
$BODY$ language plpgsql;

--创建聚集函数。
gaussdb=# CREATE AGGREGATE myavg (int)
(
    sfunc = int_add,
    stype = int,
    initcond = '0'
);

--将int类型的聚集函数myavg删除。
gaussdb=# DROP AGGREGATE myavg(int);

--删除自定义函数。
gaussdb=# DROP FUNCTION int_add(int,int);

兼容性

SQL标准中没有DROP AGGREGATE语句。

相关文档