[pgsql-jp: 39013] 2つのテーブルにまたがるトリガーの作成

樋口佳之 VYX02237 @ nifty.com
2007年 12月 21日 (金) 14:59:16 JST


 いつも参考にさせていただいてます。

 2つの表、(マスタと明細)によって保存されている伝票があり、
この伝票の更新履歴をトリガーで保存していくことは可能かと検討しています。

 それぞれのテーブルの更新履歴を残すトリガーの作成はできました。

 ただし、実作業上の伝票の訂正(そのアプリケーションからやってくるSQL)が、
マスター部だけの訂正の時もありますし、明細部だけの訂正の時もあります。
 また、その順番(マスタ側訂正の後明細部訂正、明細部訂正の後マスタ側訂正)も不定です。

 そこで

マスター部更新
 マスター部トリガー発動
  マスター部の更新前の状態と明細部の該当部分をを取り出して更新履歴へ転
記
  この場合、明細の更新が既に行われている可能性がありだめ

明細部変更
 明細部トリガー発動
  この場合もマスター部が先に更新されている可能性もありだめ

 どうも目的としている伝票としての1世代前の状態を保存することが難しそう
です。

 こうした2つ以上の表の更新の履歴管理は、アプリケーション側で行う方がい
いのでしょうか。



樋口佳之<boolean @ nifty.com>





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