ON UPDATE CURRENT_TIMESTAMP กำหนดว่าการอัปเดตโดยไม่มีการประทับเวลาที่ชัดเจนจะส่งผลให้เกิดการอัปเดตเป็นค่าการประทับเวลาปัจจุบัน
คุณสามารถลบ ON UPDATE CURRENT_TIMESTAMP ออกจากคอลัมน์ได้โดยใช้คำสั่ง ALTER
ไวยากรณ์มีดังนี้
เปลี่ยนตาราง yourTableNameCHANGE yourTimeStampColumnName yourTimeStampColumnName การประทับเวลา NOTNULL ค่าเริ่มต้น CURRENT_TIMESTAMP;
เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างตาราง แบบสอบถามในการสร้างตารางมีดังนี้
mysql> สร้างตาราง removeOnUpdateCurrentTimeStampDemo -> ( -> Id int ไม่ใช่ NULL AUTO_INCREMENT PRIMARY KEY, -> ชื่อ varchar(20), -> UserUpdateTimestamp timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, -> แถวที่ได้รับผลกระทบ ); (0.54 วินาที)
ตรวจสอบคำอธิบายของตารางโดยใช้คำสั่ง DESC
แบบสอบถามมีดังนี้
mysql> อธิบาย removeOnUpdateCurrentTimeStampDemo;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+---------------------+-------------+------+--- ------------------------------------------------------------------------------- ---+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+---------------------+-------------+------+---- ----------------------------------------------------------- -+| รหัส | int(11) | ไม่ | PRI | NULL | auto_increment || ชื่อ | varchar(20) | ใช่ | | NULL | || UserUpdateTimestamp | ประทับเวลา | ไม่ | | CURRENT_TIMESTAMP | เมื่ออัปเดต CURRENT_TIMESTAMP |+--------------------+-------------+------+-- --------------------------------------------------------------- ---+3 แถวในชุด (0.04 วินาที)ตอนนี้ดูที่ช่องพิเศษที่มีอยู่ในการอัปเดต CURRENT_TIMESTAMP แบบสอบถามเพื่อลบ ON UPDATE CURRENT_TIMESTAMP มีดังนี้:
mysql> แก้ไขตาราง removeOnUpdateCurrentTimeStampDemo -> เปลี่ยน UserUpdateTimestamp UserUpdateTimestamp timestamp NOT NULL default CURRENT_TIMESTAMP; Query OK, 0 แถวที่ได้รับผลกระทบ (0.16 วินาที) บันทึก:0 รายการซ้ำ:0 คำเตือน:0
ตรวจสอบคำอธิบายของตารางอีกครั้ง
แบบสอบถามมีดังนี้
mysql> อธิบาย removeOnUpdateCurrentTimeStampDemo;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+---------------------+-------------+------+--- ---+--------------------------------+----------------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+---------------------+-------------+------+---- ---------------------+----------------+| รหัส | int(11) | ไม่ | PRI | NULL | auto_increment || ชื่อ | varchar(20) | ใช่ | | NULL | || UserUpdateTimestamp | ประทับเวลา | ไม่ | | CURRENT_TIMESTAMP | |+---------------------+-------------+------+----- +-------------------+----------------+3 แถวในชุด (0.00 วินาที)หากคุณต้องการลบ CURRENT_TIMESTAMP เริ่มต้น แบบสอบถามจะเป็นดังนี้
mysql> แก้ไขตาราง removeOnUpdateCurrentTimeStampDemo -> เปลี่ยน UserUpdateTimestamp UserUpdateTimestamp timestamp NOT NULL; Query OK, 0 แถวได้รับผลกระทบ (0.12 วินาที) บันทึก:0 ซ้ำ:0 คำเตือน:0
ตรวจสอบคำอธิบายของตารางอีกครั้ง
แบบสอบถามมีดังนี้
mysql> อธิบาย removeOnUpdateCurrentTimeStampDemo;
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+---------------------+-------------+------+--- ---+----------------------+----------------+| สนาม | พิมพ์ | Null | คีย์ | ค่าเริ่มต้น | พิเศษ |+---------------------+-------------+------+---- ------------------------+----------------+| รหัส | int(11) | ไม่ | PRI | NULL | auto_increment || ชื่อ | varchar(20) | ใช่ | | NULL | || UserUpdateTimestamp | ประทับเวลา | ไม่ | | NULL | |+---------------------+-------------+------+----- +---------+----------------+3 แถวในชุด (0.00 วินาที)ตอนนี้ดูที่เอาต์พุตตัวอย่างด้านบน เราได้ลบ ON UPDATE CURRENT TIMESTAMP แล้ว