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

ลบ ON UPDATE CURRENT_TIMESTAMP จากคอลัมน์ที่มีอยู่ใน MySQL

คุณสมบัติ 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