我有一个视图包含两个表。假设表TableA和表TableB。
现在表A有大约20列,表B有4列。
TableA (
id datatype,
uid datatype,
.
.
.
18 more);
TableB (
id datatype,
uid datatype,
a_id datatype,
amount datatype,
CONSTRAINT tablea_tableb_fkey FOREIGN KEY (a_id)
REFERENCES tablea (id) MATCH SIMPLE
ON UPDATE RESTRICT ON DELETE RESTRICT,
);
因此TableA和TableB之间存在一对多的关系。现在我把视图写成如下......
CREATE OR REPLACE VIEW AB AS
SELECT a.id, a.uid, ..., array_agg(b.amount) AS amounts
FROM TableA a
JOIN TableB b ON a.id = b.a_id
GROUP BY i.id;
现在我想通过编写辅助函数来编写此视图的插入规则。该函数需要大约18个参数(id
除外,uid
具有默认值),用于插入TableA和1个参数,这是TableB的数组。
所以函数的总参数是19.我想知道我可以在postgresql
中传递给函数的最大参数数量是多少?发送这么多论点是明智的吗?有没有更好的方法为这么多的参数编写函数?
答案 0 :(得分:1)
FUNC_MAX_ARGS是一个编译参数(您可以更改它并重新编译),在我的9.2源代码中是100.
如果您有更多参数,那么使用数组是一个好主意。