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

ฉันจะลบ ON UPDATE CURRENT_TIMESTAMP ออกจากคอลัมน์ที่มีอยู่ใน MySQL ได้อย่างไร


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 แล้ว