• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:トリガープロシージャのNEW変数について)

トリガープロシージャのNEW変数とは?NEW変数の指定方法について教えてください。

このQ&Aのポイント
  • トリガープロシージャのNEW変数を使用することで、トリガを実行した際の更新データの値を取得することができます。
  • NEW変数の指定方法は、NEW.[フィールド名]とします。ただし、function内で取得した項目名を指定する場合は、NEW.[フィールド名]ではなく、NEW.フィールド名と指定します。
  • ループ処理を使用してテーブル内の項目を取得し、取得した項目の値を別のテーブルに挿入する場合、指定するフィールド名はNEW.フィールド名とします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

NEWに対して動くか試していないので分かりませんけれど 動的にテーブルやカラム名を指定するときは SQL文を文字列の結合||で作って、EXECUTEします。 こんな感じではないでしょうか。 EXECUTE 'INSERT INTO "テーブル名2" VALUES(NEW.' || rec.attname ')'; 動いたら是非教えてください(^^)

参考URL:
http://www.postgresql.jp/document/current/html/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN
198307040628
質問者

お礼

なるほどー。 明日になりますが、ためしてみます! ありがとうございます。 結果わかったら教えます!

その他の回答 (1)

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

トリガー内でNEWとかOLDが使えるのは、トリガーの元表やViewの項目に対してですけど。

198307040628
質問者

お礼

そうなんですね。 全然無知ですみません。 回答有難うございます。

関連するQ&A