[pgsql-jp: 40739] トリガーファンクション?で実現可能でしょうか?
yukihito miso
oira3ryu @ gmail.com
2011年 4月 18日 (月) 21:36:30 JST
トリガーファンクション?というのでしょうか?
id sec col cat
-------------------
1 1 1c 1
2 2 2c 1
3 1 4c 11
4 2 8c 11
5 3 12c 11
上記のテーブルでcatが11の場合
イメージですが
merge_col := 1c, 2c, 3c
ということをしたい。
ためしに、
CREATE OR REPLACE FUNCTION merge_col()
RETURNS trigger AS
$BODY$
DECLARE
cnt int;
BEGIN
PERFORM COUNT(col) AS cnt FROM tableA WHERE cat = NEW.cat;
FOR i IN 1..cnt LOOP
SELECT col FROM tableA WHERE sec = i AND cat = NEW.cat;
NEW.merge_col := col;
RETURN NEW;
END LOOP;
NEW.merge_col := merge_col;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION merge_col() OWNER TO yu2admin;
としてみましたが
「upper bound FOR of loop cannot be null」
というエラーが出てしまいます。
どなたかご指導お願いします。
pgsql-jp メーリングリストの案内