1

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 の間には 1 対多の関係があります。今、私は次のようにビューを書きました...

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;

ここで、ヘルパー関数を作成して、このビューの挿入ルールを作成したいと思います。この関数は、TableA に挿入するための約 18 個のパラメーター (デフォルト値iduid持つ を除く) と、TableB の配列である 1 つのパラメーターを取ります。

したがって、関数の合計パラメーターは 19 です。関数に渡すことができる引数の最大数を知りたいpostgresqlですか? これほど多くの引数を送信するのは賢明でしょうか? この多数の引数に対して関数を記述するより良い方法はありますか?

4

1 に答える 1

1

FUNC_MAX_ARGS は 1 つのコンパイル パラメータ (変更して再コンパイルできます) で、私の 9.2 ソース コードでは 100 です。

より多くのパラメーターがある場合は、配列を使用することをお勧めします。

于 2013-05-16T11:37:32.010 に答える