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

MySQL บันทึก Timestamp อัตโนมัติเมื่อ Insert ข้อมูล

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 - ตั้งค่าเมื่อ INSERT
  • ON 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
);