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型でした。
コメント