SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

MySQLのtimestamp型のカラムについて(タイムスタンプ自動更新など)

MySQLのtimestamp型のカラムについて
http://dev.mysql.com/doc/refman/5.1/ja/timestamp-4-1.html

MySQLのtimestamp型で日付がどのように更新されるかは、default値に何を設定するかによって変わるそうです。

1、”DEFAULT CURRENT_TIMESTAMP”
新規追加したときには日時が自動的に登録されますが、更新しても日時は変わりません。
2、”DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP”
デフォルト値をこのようにすると、新規追加、更新のどちらでも日時が更新されます。

ちなみに、CREATE TABLE するときと、ALTER TABLE するときの TIMESTAMP型カラムのデフォルトの設定が違うようなので、期待した動作をしていないと思ったら、1になっているか2になっているか要確認です。

ちゃんと DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP など書けば問題ないでしょうけど。

タイムスタンプの自動更新っていうのは、便利かもしれないけど、思わぬ更新など起こしそうで、どことなく気持ち悪いのは私だけでしょうか。

ビューやトリガーなどを多用するなという話と似た話なのかな、気にしすぎかな…

ちょっと気になって、個人的には積極的に使う気になれない TIMESTAMP型でした。

関連するメモ

コメント