2 วิธีการตั้งค่า Timestamp อัตโนมัติ
วิธีที่ 1: ตอนสร้างตาราง (CREATE TABLE)
CREATE TABLE yourTableName (
yourDateTimeColumnName DATETIME DEFAULT CURRENT_TIMESTAMP
);
วิธีที่ 2: เพิ่มคอลัมน์ภายหลัง (ALTER TABLE)
ALTER TABLE yourTableName ADD yourColumnName DATETIME DEFAULT CURRENT_TIMESTAMP;
ตัวอย่างวิธีที่ 1: สร้างตารางพร้อม DEFAULT
mysql> CREATE TABLE CurrentTimeStampDemo (
-> CreationDate DATETIME DEFAULT CURRENT_TIMESTAMP
-> );
Query OK, 0 rows affected (0.61 sec)
mysql> INSERT INTO CurrentTimeStampDemo VALUES();
Query OK, 1 row affected (0.12 sec)
mysql> SELECT * FROM CurrentTimeStampDemo;
+---------------------+ | CreationDate | +---------------------+ | 2019-01-02 15:53:03 | +---------------------+ 1 row in set (0.00 sec)
ตัวอย่างวิธีที่ 2: ALTER TABLE เพิ่มคอลัมน์
mysql> CREATE TABLE Current_TimestampDemo (
-> Id INT
-> );
Query OK, 0 rows affected (0.43 sec)
mysql> ALTER TABLE Current_TimestampDemo
-> ADD CreationDate DATETIME DEFAULT CURRENT_TIMESTAMP;
Query OK, 0 rows affected (0.53 sec)
mysql> INSERT INTO Current_TimestampDemo(Id) VALUES(1);
Query OK, 1 row affected (0.19 sec)
mysql> SELECT CreationDate FROM Current_TimestampDemo;
+---------------------+ | CreationDate | +---------------------+ | 2019-01-02 16:25:12 | +---------------------+ 1 row in set (0.00 sec)
คุณสมบัติเพิ่มเติม (MySQL 5.6.5+):
DEFAULT CURRENT_TIMESTAMP- ตั้งค่าเมื่อ INSERTON UPDATE CURRENT_TIMESTAMP- อัปเดตเมื่อ UPDATE- รวมได้:
DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
ตัวอย่างครบถ้วน:
CREATE TABLE audit_log (
id INT AUTO_INCREMENT PRIMARY KEY,
action VARCHAR(50),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);