MySQL での DEFAULT CURRENT_TIMESTAMP と ON UPDATE CURRENT_TIMESTAMP の実装
DEFAULT CURRENT_TIMESTAMP と ON UPDATE CURRENT_TIMESTAMP を使用すると、列にはデフォルト値の現在のタイムスタンプが設定され、現在のタイムスタンプに自動的に更新されます。
例を見てテーブルを作成してみましょう。
mysql> create table DemoTable737 (
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName varchar(100),
StudentAdmissiondate datetime
);
Query OK, 0 rows affected (0.68 sec)
以下は、MySQL の CURRENT_TIMESTAMP および ON UPDATE CURRENT_TIMESTAMP に対するクエリです。
mysql> alter table DemoTable737 modify column StudentAdmissiondate
timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
Query OK, 0 rows affected (2.20 sec)
Records: 0 Duplicates: 0 Warnings: 0
テーブルの説明をもう一度確認してみましょう。
mysql> desc DemoTable737;
これにより、次の出力が生成されます -
+----------------------+--------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+--------------+------+-----+-------------------+-----------------------------+
| StudentId | int(11) | NO | PRI | NULL | auto_increment |
| StudentName | varchar(100) | YES | | NULL | |
| StudentAdmissiondate | timestamp | YES | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+----------------------+--------------+------+-----+-------------------+-----------------------------+
3 rows in set (0.01 sec)