昨日の補足
http://d.hatena.ne.jp/Horiuchi_H/20080619/1213855066
昨日のEntryに以下の用なコメントをいただきました。
koichikkoichik 2008/06/19 20:30
> UpdateTime等のカラムを getdate()関数の値で UpdateやInsertそれはトリガでやるのが定番のような.
あまりDBを使うシステムを見てきていないので分からないのですが、対象テーブル全てにトリガを設定するよりO/Rマッパーがやってしまった方が楽じゃないかな?と思ってました。
それと Railsで、"created_at" とか "updated_at"とか カラム名を付けておくと勝手に更新してくれるので、それの真似でもあります。
getdate()関数について
昨日のEntryだと、何の説明もなく出てきて SQLに埋め込んでますが MySQL・PostgreSQL・Oracle ではそのままじゃ使えません。
実は以下のような ストアド・ファンクションを各DB向けに定義してました。
・MySQL用
CREATE FUNCTION getdate() RETURNS TIMESTAMP RETURN NOW() ;
CREATE FUNCTION getdate() RETURNS TIMESTAMP AS ' BEGIN RETURN now() ; END ; ' LANGUAGE 'plpgsql' ;
・Oracle用
CREATE FUNCTION getdate() RETURN TIMESTAMP IS BEGIN RETURN sysdate ; END ;
ここも、S2JDBCならそれぞれのDB向けに Dialectで実装した方が良いんでしょうけど、インターフェイスから変更が必要そうだったので、今回はやってません。