[前][次][番号順一覧][スレッド一覧]

mysql:14176

From: "yusuke ito" <"yusuke ito" <ito.ysk@xxxxxxxxxx>>
Date: Tue, 14 Aug 2007 17:53:46 +0900
Subject: [mysql 14176] Re: update 時の無条件更新の方法

伊東です。こんにちは。

> とあるテーブルに TIMESTAMP 型のフィールドがあったとします。
>
> これは、NULL を指定して他のフィールドを update すれば(明
> 示的に更新をしないように指定しなければ)自動的に現在時刻に
> 更新されます。
>
> これは、うまく行きます。
>
> ただ、「更新対象の変更が無かったら」現在時刻に更新されませ
> ん。知りませんでした。マニュアルには書いてあります。

http://dev.mysql.com/doc/refman/4.1/ja/datetime.html
の説明は、他のカラムが更新されない場合でも
「TIMESTAMP カラムに値 NULL が明示的に設定された場合」には
現在時刻にアップデートされるように読めます。

なので、TIMESTAMPを更新したいUPDATE文で
  SET (TIMESTAMP型カラム)=NOW()

もしくは
  SET (TIMESTAMP型カラム)=NULL

を追加してやるのが正解だと思います。

> 最終的には DATETIME 型を用意して now() を突っ込まなければ
> ならないのかと思っているのですが、あたりが多くてやりたくな
> い(^^;のです。

ここもわからんのですが、
TIMESTAMP型でもNOW()突っ込めば同じ結果だと思います。

~~~~
あなたの文面からはそう読み取るのは難しいですが、ひょっとして
「今のSQLを変えずにDBの挙動を変えるオプションは無いですか」
って聞いてるんでしょうか?
サーバ起動オプションとかに書かれていない限り、
ソースいじらないと難しいでしょうね。

[前][次][番号順一覧][スレッド一覧]

     14174 2007-08-14 17:04 [遠藤 俊裕 <endo@xxxx] update 時の無条件更新の方法             
     14175 2007-08-14 17:28 ┣["SEGAMI, Takashi" <s]                                       
->   14176 2007-08-14 17:53 ┣["yusuke ito" <ito.ys]                                       
     14177 2007-08-14 18:06 ┗[遠藤 俊裕 <endo@xxxx]