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语句。