Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีเพิ่มคอลัมน์ใหม่พร้อม Default เป็นเวลาปัจจุบันใน MySQL

ใช้ 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