跳转至

ALTER AGGREGATE

ALTER AGGREGATE

修改聚集函数的定义。

语法

``` sql ALTER AGGREGATE name ( type [ , … ] ) RENAME TO new_name

ALTER AGGREGATE name ( type [ , … ] ) OWNER TO new_owner

ALTER AGGREGATE name ( type [ , … ] ) SET SCHEMA new_schema ```

描述

ALTER AGGREGATE 用来修改一个聚集函数的定义。

必须是该聚集函数的所有者才能使用ALTER AGGREGATE。要更改聚集函数的模式, 同时必须拥有新模式的 CREATE权限。要更改聚集函数的所有者,还必须是新角色的直接或者间接成员,而且新角色必须在聚集函数的模式上拥有 CREATE权限。(这些限制强制要求拥有者不能通过丢弃并重建该聚集函数来做任何不能做的事情。然而,超级用户可以改变任何聚合函数的所有权。)

参数

上述命令中的参数含义见下

name
现有聚集函数的名称(可以是限定模式)
type
聚集函数能运行的输入数据类型。要引用零参数聚合函数,写入*代替输入数据类型的列表。
new_name
聚集函数的新名称。
new_owner
聚集函数的新所有者。
new_schema
聚集函数的新模式名
示例

integer 类型的聚集函数myavg 重命名为 my_average:

ALTER AGGREGATE myavg(integer) RENAME TO my_average;

integer 类型的聚集函数 myavg 的所有者改为 joe:

ALTER AGGREGATE myavg(integer) OWNER TO joe;

integer 类型的聚集函数myavg 模式修改为 myschema:

ALTER AGGREGATE myavg(integer) SET SCHEMA myschema;
兼容性说明
SQL标准中没有ALTER AGGREGATE 语句。
相关SQL命令
CREATE AGGREGATE, DROP AGGREGATE