[pgsql-jp: 32976] Re: NEW もしくは OLD に別名を与える方法は?
Jun Kitamura
kitamura @ zoozee.jp
2004年 5月 20日 (木) 00:31:05 JST
北村です。
> INSERT文は以下のように記述しておき、NEWもしくはOLDをrecと名乗らせる
> ことで、INSERT文をひとつにしたいと考えています。
> INSERT INTO table_name ( pk, a, b, c )
> VALUES ( rec.pk, rec.a, rec.b, rec.c ) ;
>
> 以下のような文を試してみたのですが、どれもエラーになってしまいました。
(略)
> E) SELECT INTO rec * FROM NEW ;
> WARNING: Error occurred while executing PL/pgSQL function func_name
> WARNING: line n at select into variables
SELECT NEW.* into rec;
で出来ませんか?
rec は RECORD型にしてあるかと思いますので、後は「入れ方」の
問題だと思います。
試してないので恐縮ですが、上記の方法で可能だと思います。
なんとなく、
C) の rec := NEW; で可能な感じがしますが、RECORD型は宣言時に
型が決定していないので、明示的に SELECT (class) INTO (RECORD)
してやる必要があります(と「勝手に」解釈しています。ので間違
いの場合あり)。
pgsql-jp メーリングリストの案内