MySQLにタイムスタンプを追加する。
「test」テーブルの最後のカラムの後ろに、レコードの作成時間を格納するカラムを追加します。
カラム名の後ろに「TIMESTAMP DEFAULT CURRENT_TIMESTAMP」と書きます。
ALTER TABLE tests ADD create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP AFTER last_column;
次に「test」テーブルの最後のカラム(先程追加した「create_time」)の後ろに、レコードの更新時間を格納するカラムを追加します。レコードを更新したときに更新時間を格納するにはカラム名の後ろに「TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP」をくっつけます。
ALTER TABLE tests ADD update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP AFTER create_time;
では試してみます。
まず「tests」テーブルにレコードを追加します。
INSERT INTO tests(date,time) values('20170101','090000'); SELECT * FROM tests;
中身はこうなってます。
レコード作成時間が格納されてます。(右にスクロールさせてください)
+----+------------+----------+-------+------+------+------+--------+-------+---------------------+---------------------+ | id | date | time | start | high | low | end | volume | value | create_time | update_time | +----+------------+----------+-------+------+------+------+--------+-------+---------------------+---------------------+ | 2 | 2017-01-01 | 09:00:00 | NULL | NULL | NULL | NULL | NULL | NULL | 2017-02-23 21:35:53 | 2017-02-23 21:35:53 | +----+------------+----------+-------+------+------+------+--------+-------+---------------------+---------------------+
次に先程追加したレコードを変更します。
UPDATE tests set date = '20170401'; SELECT * FROM tests;
中身はこう。update_timeだけ変更されてます。(右にスクロールさせてください。)
+----+------------+----------+-------+------+------+------+--------+-------+---------------------+---------------------+ | id | date | time | start | high | low | end | volume | value | create_time | update_time | +----+------------+----------+-------+------+------+------+--------+-------+---------------------+---------------------+ | 2 | 2017-04-01 | 09:00:00 | NULL | NULL | NULL | NULL | NULL | NULL | 2017-02-23 21:35:53 | 2017-02-23 21:38:35 | +----+------------+----------+-------+------+------+------+--------+-------+---------------------+---------------------+