[pgsql-jp: 25097] Re: TRIGGER 作成でエラー

Tsukasa Koizumi tsukasa @ koiz.com
2002年 3月 6日 (水) 15:19:00 JST


小泉です。
レスポンスありがとうございます。

At 14:10 02/03/06 +0900, you wrote:
>パラメータなしの関数にしたら動作はかわりませんかねえ
>
>REATE FUNCTION calc_i_status2 ()
>RETURNS bool AS 
>'
>元のSQLより$1を new.item に変える
>'
>LANGUAGE 'sql';

やってみたのですが、この時点でエラーになります。

ERROR:  NEW used in non-rule query

おそらく、どのテーブルのnew.itemなのかを指定しなければならないのだろう
とと思うのですが、「new.item」という書き方は初めてで、ちょっとよくわ
からない状態です。
(new.saledetails.item ともしてみましたが、同じでした……)

#non-ruleということは、create ruleしなければいけない?

>CREATE TRIGGER trig_calc_i_status2
>AFTER INSERT ON saledetails FOR EACH ROW
>EXECUTE PROCEDURE calc_i_status2 ();

「new.item」というのは、新たにinsertされた行のカラム「item」の値、
と考えてよろしいですよね?

このトリガーは、updateやdeleteでも動いて貰わねばならないのですが、
new.item でも大丈夫なのでしょうか?


----------------------------------------------------------------------
小泉 司@コイズコム デジタルワークス(東京都文京区)
Desk - mailto:tsukasa @ koiz.com / Mobile - mailto:pigtail @ pdx.ne.jp
PGP Public Key - http://www.koiz.com/~tsukasa/PGP_KEY/tsukasa.asc
----------------------------------------------------------------------





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