ALTER AGGREGATE

From PostgreSQL wiki
Jump to navigationJump to search
名字

ALTER AGGREGATE -- 修改一个聚集函数的定义

语法概要
   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
聚集函数操作的输入数据的数据类型。要表示某个0个参数的聚集函数,在输入类型列表中添 *。
new_name
聚集函数的新名字。
new_owner
聚集函数的新所有者。
new_schema
聚集函数的新模式。
示例

把对 integer 类型进行聚集操作的 myavg 函数重命名为 my_average:To rename the aggregate function myavg for type integer to my_average:

   ALTER AGGREGATE myavg(integer) RENAME TO my_average;

把对 integer 类型进行聚集操作的 myavg 函数的所有者变更为 joe:To change the owner of the aggregate function myavg for type integer to joe:

   ALTER AGGREGATE myavg(integer) OWNER TO joe;

把对 integer 类型进行聚集操作的 myavg 函数移动到模式 myschema 里:To move the aggregate function myavg for type integer into schema myschema:

   ALTER AGGREGATE myavg(integer) SET SCHEMA myschema;
兼容性

SQL 标准里面没有 ALTER AGGREGATE 语句。

参见

CREATE AGGREGATE, DROP AGGREGATE