ใช้ DEFAULT CURRENT_TIMESTAMP ตอนสร้าง/แก้ไขคอลัมน์ TIMESTAMP
กำหนด DEFAULT CURRENT_TIMESTAMP ให้คอลัมน์ TIMESTAMP/DATETIME จะเซ็ตเวลาปัจจุบันอัตโนมัติตอน INSERT หากไม่ระบุค่า
ไวยากรณ์
CREATE TABLE your_table (
your_column TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
ตัวอย่างสร้างตาราง
CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
DueDate TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT โดยไม่ระบุ DueDate
INSERT INTO DemoTable VALUES ();
ผลลัพธ์: DueDate = เวลาที่ INSERT
+----+---------------------+ | Id | DueDate | +----+---------------------+ | 1 | 2019-06-08 21:35:58 | +----+---------------------+
คำอธิบาย:
DEFAULT CURRENT_TIMESTAMPทำงานตอน INSERT ไม่ระบุค่าคอลัมน์นี้- ชนิดข้อมูล:
TIMESTAMP(MySQL 5.6.5+) หรือDATETIME(MySQL 5.6.5+) - เพิ่ม
ON UPDATE CURRENT_TIMESTAMPได้: อัปเดตเวลาอัตโนมัติตอน UPDATE
เพิ่มคอลัมน์ใหม่ในตารางที่มีอยู่:
ALTER TABLE DemoTable ADD COLUMN CreatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
⚠ ข้อควรระวัง:
TIMESTAMPมีช่วง 1970-2038 (Year 2038 Problem)DATETIMEไม่มีปัญหานี้ (1000-9999)TIMESTAMPแปลง Timezone (Session time_zone)DATETIMEไม่แปลง- MySQL 8.0.13+ รองรับ
ADD COLUMN IF NOT EXISTS