[pgsql-jp: 33876] Re: 挿入・更新時のTimeStamp 自動挿入

Yutaka tanida tanida @ sra.co.jp
2004年 8月 14日 (土) 12:50:43 JST


谷田です。

On Sat, 14 Aug 2004 11:33:02 +0900
OHTSUKA Ko-hei <techml @ saesparam.com> wrote:

> MySQLから移行し始めて、多彩な機能に驚いているのですが、
> 一方で暴れ馬的と言うか、気難しいDBだなという感じも受けて
> います。

それは何を基準にするか、の問題ですね。

# 私自身から見ればMySQLのほうが暴れ馬っぽいし、
# Oracle使いから見ればMVCCではないDB/2やMSSQLは良くロックを起こす
# 暴れ馬だと評価したりすることも多いですね。

> MySQLでは、たとえばセッションテーブル等で挿入・更新時に
> タイムスタンプを更新する等は、DBが勝手にやってくれるの
> ですが、

私がMySQLで最近ものすごく驚いた機能の一つですね。この機能のおかげでMySQL
のTimestamp型はSQLのそれ(というかMySQL以外のRDBMSのほとんど?)と互換性
がありません。

#ありえない・・・

> ところが、上記を設定したとたん、sessionsテーブルに挿入・更新
> 動作を行うと、DBが反応しなくなってしまうようになってしまいま
> した。

1) 更新処理
2) トリガー発生
3) last_assessを更新する処理
4) 2)に戻る

> また、やりたい事は単純に更新時刻の自動挿入だけなので、それを
> 行う定石等ありましたら教えていただければ幸いです。

一般には、insertの時は今やられているとおり、updateのときも更新時刻を設定
するだけです。

update ... set .., last_access=now() ,.... 


-- 
Yutaka tanida <tanida @ sra.co.jp>




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