gpt4 book ai didi

postgresql - PL/pgSQL - %TYPE 和 ARRAY

转载 作者:行者123 更新时间:2023-11-29 11:39:12 25 4
gpt4 key购买 nike

是否可以一起使用 %TYPE 和数组?

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_id % TYPE 而不是简单地 INT 因为这样以后修改任何列类型都更容易。

最佳答案

如手册所述here :

The type of a column is referenced by writing table_name.column_name%TYPE. Using this feature can sometimes help make a function independent of changes to the definition of a table.

可以在 RETURNS 子句中使用相同的功能。

但是没有简单的方法可以从引用的列派生数组类型,至少我不知道。

关于稍后修改任何列类型:
您知道这种类型的语法只是从表列派生类型的语法便利吗?创建后,没有任何链接到所涉及的表或列。

它有助于保持整个创建脚本同步。但是 id 对以后对数据库中事件对象的更改没有帮助。

dba.SE 上的相关回答:

关于postgresql - PL/pgSQL - %TYPE 和 ARRAY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17659995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com