[pgsql-jp: 28169] トリガファンクションのカラム名を変数で使いたい

Chie.M gontakun @ check.ne.jp
2002年 12月 3日 (火) 17:16:44 JST


Chieと申します。お世話になっております。

plpgsqlでトリガファンクションを作っています。

このとき
 new.カラム名 old.カラム名
としてデータを取得しようとしています。
このカラム名を変数で指定したいのですが、そういうことは出来るのでしょうか?

例えばカラム名がcolというテキスト型の変数に入っている場合
下記のようにしてみたのですがダメでした。

例1
UPDATE test_table SET old_data = old.col;
--colというカラム名はないというエラーになりました。

例2
EXECUTE 
''UPDATE test_table SET old_data = old.'' || quote_ident(col);
--oldの使い方が違うみたいなエラーになりました。
マニュアルによれば、これらの、OLDやNEWは「特殊な変数」と書かれているので
''''内では使えないということでしょうか。

変数に入ったテキスト型のカラム名を認識させるには
どうしたらよいのでしょうか?
よろしくお願いいたします。

--環境-------
サーバ
 RedHat 7.3
 PostgreSQL 7.2.3
 Apache 1.3.27

クライアント
 Windows XP/Access 2002
 PostgreSQL ODBC Driver 07.01.0006 日本語版
--------------------
------------------------
From:Chie.M
 gontakun @ check.ne.jp
------------------------




pgsql-jp メーリングリストの案内