[pgsql-jp: 33699] Re: UPDATEのTrigger 内で発行したInsert がwait

白神 正雄 shiraga_masao2 @ hotmail.com
2004年 7月 18日 (日) 11:40:04 JST


こんにちは。白神です。


>
>こんにちは。石田@苫小牧市です。
>
>白神 正雄 wrote:
> > はじめまして。
> > 白神といいます。
>(中略)
> > 前置きが長くなりましたが・・・
> > ===【質問】==========================================
> > [質問1] ・・・上記(c)の処理について
> > Updateのトリガー関数(C言語)から、別テーブルにInsertしているのに
> > Insertがwaitになるのは、原因としてどういったことが考えられるでしょうか?

> > MVCCが狂ってしまわれたのでしょうか・・・?
> > ※明示的にロックをかけるようなことはしていません。
> >
> >
> > [質問2] ・・・上記(d)の処理について
> > Postgresでは、トリガー関数(C言語)内で、トリガーを起こしたテーブルの
> > 同じ行(の同じフィールド)を更新することはできるのでしょうか?
> > 実現するために何か特別なことをしなければいけないのでしょうか?
> > ※トリガーを発生元のTuppleを書き換えるとか。
> >   現状、関数呼び出し時に取得したTuppleをそのまま返してます。
> > ===================================================
> >
>
>[質問2]については、
>triggerdata->tg_newtupleをSPI_modifytuple()で書き換えることで
>できるはずです。(やったことはないですが)。
>
>参考になるのは、
>http://www.postgresql.jp/document/pg743doc/html/triggers.html
>だと思います。また、http:
>//www.postgresql.jp/document/pg743doc/html/trigger-example.html
>の最後にも書かれていますが、
>src/test/regress/regress.cとcontrib/spiにもサンプルがあるようです。
>

そうですか。早速やってみます。
迅速なご回答ありがとうございます!

※・・・ってことは、皆さんのところでは、こういう現象は
 出ていないということでしょうか?

_________________________________________________________________
楽しい絵文字でココロ伝わるメッセンジャー http://messenger.msn.co.jp/ 




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