คุณสมบัติ ON UPDATE CURRENT_TIMESTAMP ทำให้คอลัมน์ timestamp อัปเดตเป็นเวลาปัจจุบันทุกครั้งที่แถวถูกแก้ไข หากต้องการลบคุณสมบัตินี้ ให้ใช้คำสั่ง ALTER TABLE ... CHANGE
รูปแบบคำสั่ง
ALTER TABLE yourTableName CHANGE yourTimeStampColumnName yourTimeStampColumnName timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP;
ตัวอย่างขั้นตอน
1. สร้างตารางพร้อม ON UPDATE CURRENT_TIMESTAMP
mysql> create table removeOnUpdateCurrentTimeStampDemo (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name varchar(20),
-> UserUpdateTimestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
-> );
2. ตรวจสอบโครงสร้างตาราง
mysql> desc removeOnUpdateCurrentTimeStampDemo;
+---------------------+-------------+------+-----+-------------------+-----------------------------+ | Field | Type | Null | Key | Default | Extra | +---------------------+-------------+------+-----+-------------------+-----------------------------+ | UserUpdateTimestamp | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | +---------------------+-------------+------+-----+-------------------+-----------------------------+
3. ลบ ON UPDATE CURRENT_TIMESTAMP
mysql> alter table removeOnUpdateCurrentTimeStampDemo
-> change UserUpdateTimestamp UserUpdateTimestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP;
4. ตรวจสอบอีกครั้ง
mysql> desc removeOnUpdateCurrentTimeStampDemo;
+---------------------+-------------+------+-----+-------------------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------------+-------------+------+-----+-------------------+-------+ | UserUpdateTimestamp | timestamp | NO | | CURRENT_TIMESTAMP | | +---------------------+-------------+------+-----+-------------------+-------+
5. ลบ DEFAULT CURRENT_TIMESTAMP ด้วย (ถ้าต้องการ)
mysql> alter table removeOnUpdateCurrentTimeStampDemo
-> change UserUpdateTimestamp UserUpdateTimestamp timestamp NOT NULL;
สรุปตัวเลือก
| ความต้องการ | คำสั่ง |
|---|---|
| ลบ ON UPDATE เท่านั้น | CHANGE col col TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP |
| ลบ DEFAULT และ ON UPDATE ทั้งคู่ | CHANGE col col TIMESTAMP NOT NULL |
| เปลี่ยนเป็น NULL ได้ ไม่มีค่าเริ่มต้น | CHANGE col col TIMESTAMP NULL |