Postgresql PL/pgSQL-%类型和数组
是否可以同时使用%类型和数组Postgresql PL/pgSQL-%类型和数组,postgresql,plpgsql,Postgresql,Plpgsql,是否可以同时使用%类型和数组 CREATE FUNCTION role_update( IN id "role".role_id % TYPE, IN name "role".role_name % TYPE, IN user_id_list "user".user_id % TYPE[], IN permission_id_list INT[] ) 这导致了语法错误,但我不想复制任何列类型,因此我想使用“user”。user\u id%type而不是简单的INT,因为这
CREATE FUNCTION role_update(
IN id "role".role_id % TYPE,
IN name "role".role_name % TYPE,
IN user_id_list "user".user_id % TYPE[],
IN permission_id_list INT[]
)
这导致了语法错误,但我不想复制任何列类型,因此我想使用“user”。user\u id%type
而不是简单的INT
,因为这样以后修改任何列类型都比较容易。如手册所述:
列的类型通过写入表\u name引用。列\u name%type。使用此功能有时有助于使函数独立于对表定义的更改
在返回
子句中可以使用相同的功能
但从引用的列派生数组类型并没有简单的方法,至少我不知道
关于以后修改任何列类型
:您知道,这种类型的语法只是从表列派生类型的一种语法便利?一旦创建,就不会有任何链接到所涉及的表或列 它有助于保持整个创建脚本的同步。但id对以后数据库中活动对象的更改没有帮助 有关dba.SE的回答:
%TYPE
。