postgresql函数可以采用的最大参数个数

时间:2013-05-16 10:36:41

标签: postgresql postgresql-9.2

我有一个视图包含两个表。假设表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中传递给函数的最大参数数量是多少?发送这么多论点是明智的吗?有没有更好的方法为这么多的参数编写函数?

1 个答案:

答案 0 :(得分:1)

FUNC_MAX_ARGS是一个编译参数(您可以更改它并重新编译),在我的9.2源代码中是100.

如果您有更多参数,那么使用数组是一个好主意。