ALTER OPERATOR
功能描述
修改一个操作符的定义。
注意事项
要使用ALTER OPERATOR,用户必须是该操作符的所有者。要修改所有者,用户还必须是新的所有角色的直接或间接成员,并且该成员必须在此操作符的模式上有CREATE权限。(这些限制强制了修改该所有者不会做任何通过删除和重建操作符不能做的事情。不过,具有SYSADMIN权限用户可以以任何方式修改任意操作符的所有权。)
使用该功能需要开启GUC参数support_extended_features,使用如下步骤开启该参数。
1、设置support_extended_features为on。
ALTER SYSTEM SET support_extended_features TO on;
2、重启数据库。
vb_ctl restart
support_extended_features
参数说明: 控制是否支持数据库的扩展特性。
该参数属于POSTMASTER类型参数,请参考重设参数表1中对应设置方法进行设置。
取值范围: 布尔型
- on:表示支持数据库的扩展特性。
- off:表示不支持数据库的扩展特性。
默认值: off
语法格式
ALTER OPERATOR name ( { left_type | NONE } , { right_type | NONE } ) OWNER TO new_owner
ALTER OPERATOR name ( { left_type | NONE } , { right_type | NONE } ) SET SCHEMA new_schema
参数说明
name
要修改的操作符名。
IF EXISTS
如果指定的操作符不存在,则发出一个notice而不是error。
left_type
操作符的左操作数的数据类型;如果没有左操作数,那么写NONE。
right_type
操作符的右操作数的数据类型;如果没有右操作数,那么写NONE。
new_owner
操作符的新所有者。
new_schema
操作符的新模式名。
示例
1、设置support_extended_features为on。
ALTER SYSTEM SET support_extended_features TO on;
2、重启数据库使参数生效。
3、创建操作符。
create operator @+@ (leftarg = int4, rightarg = int4, procedure = int4mi);
4、修改操作符。
alter operator @+@ (int4, int4) owner to regress_alter_user2;