can not use current_timestamp on 2 timestamp columns | mysql

create table でこれがエラーになる。

 `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

http://dev.mysql.com/doc/refman/5.5/en/timestamp.html

あってそうだけど、2個 timestamp型にCURRENT_TIMESTAMPを使えないらしい。

テーブル内の1つの TIMESTAMP カラムに対して、現在のタイムスタンプをデフォルト値と自動更新値として指定する事ができます。現在のタイムスタンプを、カラムを初期化するデフォルト値にする事、または自動更新のデフォルト値にする事、またはその両方にする事が可能です。現在のタイムスタンプを、1つのカラムを初期化するデフォルト値にし、別のカラムの自動更新のデフォルト値にする事は不可能です。

ということで。

  `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

instert into で NOW() を入れてみる。

mysql> select * from users;
+---------+--------+------+----------+---------------------+---------------------+
| id      | authid | mail | passhash | created_at          | updated_at          |
+---------+--------+------+----------+---------------------+---------------------+
| 1000000 | test1  | NULL | NULL     | 2011-12-14 18:59:34 | 2011-12-14 18:59:34 |
+---------+--------+------+----------+---------------------+---------------------+
1 row in set (0.00 sec)

OKでした。

This entry was posted on 水曜日, 12月 14th, 2011 at 7:16 PM and is filed under mysql. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

Unityによるゲームを公開しております iOS/Android
https://itunes.apple.com/jp/app/lost-knight-3d-action/id900917032
https://play.google.com/store/apps/details?id=com.groundroad.runknight

各種開発支援・機能開発等小さいお仕事などもお請けしております。
unity開発支援, PHPシステム開発, javascript/html5 フロント開発, titanium mobileアプリ開発
お気軽にお問い合わせください
大崎・五反田近郊での対面でのお打ち合わせはいつでも可能です。