2011年6月27日

[pgsql-jp: 40820] Re:スキーマ間のトリガー

ご返信有難うございます。

> > これはトリガーEがS1にあるため、S2のストアドCがS1のテーブルを見にいってしまっているようでした。

この場合は、なんとなく理解できるのですが、
トリガーをS2に作成した場合でも、S1のテーブルを見ているので、
やはり、「最初のテーブルやスキーマを選択したことになります。」ということですか。

S2のテーブルを更新するときはS2にある既存のストアドで対応したかったのですが、
スキーマを設定する必要があるということですね。

CREATE FUNCTION 時に SET search_pathを設定する方法があるということで、
手間は省けそうです。

有難うございます。

Itagaki Takahiro <itagaki.takahiro@xxxxx> wrote:

> 2011/6/24 Tsunezumi <tsunezumi@xxxxx>:
> > これはトリガーEがS1にあるため、S2のストアドCがS1のテーブルを見にいってしまっているようでした。
>
> スキーマ指定をしない場合、デフォルトのスキーマ検索パスで見つかった
> 最初のテーブルやスキーマを選択したことになります。
> 異なるスキーマに同じ名前のオブジェクトがある場合、
> 「スキーマ.名前」の形式でアクセスする必要があるのではないでしょうか?
> (S1.テーブルA, S2.ストアドC() など)
>
> 動作としては同じですが、CREATE FUNCTION 時に SET search_path で
> 検索するスキーマを設定する方法もあります。
> http://www.postgresql.jp/document/current/html/sql-createfunction.html
> の SET オプション
>
> --
> Itagaki Takahiro

投稿者 xml-rpc : 2011年6月27日 10:10
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/105073
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。