Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để xóa ON UPDATE CURRENT_TIMESTAMP khỏi cột hiện có trong MySQL?

ON UPDATE CURRENT_TIMESTAMP xác định rằng bản cập nhật không có dấu thời gian rõ ràng sẽ dẫn đến việc cập nhật giá trị dấu thời gian hiện tại.

Bạn có thể xóa ON UPDATE CURRENT_TIMESTAMP khỏi cột bằng lệnh ALTER.

Cú pháp như sau

ALTER TABLE yourTableName
CHANGE yourTimeStampColumnName yourTimeStampColumnName timestamp NOT
NULL default CURRENT_TIMESTAMP;

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau

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
   - > );
Query OK, 0 rows affected (0.54 sec)

Kiểm tra mô tả của bảng bằng lệnh DESC.

Truy vấn như sau

mysql> desc removeOnUpdateCurrentTimeStampDemo;

Sau đây là kết quả

+---------------------+-------------+------+-----+-------------------+-----------------------------+
| Field               | Type        | Null | Key | Default           | Extra                       |
+---------------------+-------------+------+-----+-------------------+-----------------------------+
| Id                  | int(11)     | NO   | PRI | NULL              | auto_increment              |
| Name                | varchar(20) | YES  |     | NULL              |                             |
| UserUpdateTimestamp | timestamp   | NO   |     | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+---------------------+-------------+------+-----+-------------------+-----------------------------+
3 rows in set (0.04 sec)

Bây giờ hãy nhìn vào trường Bổ sung có trên bản cập nhật CURRENT_TIMESTAMP. Truy vấn xóa ON UPDATE CURRENT_TIMESTAMP như sau:

mysql> alter table removeOnUpdateCurrentTimeStampDemo
   - > change UserUpdateTimestamp UserUpdateTimestamp timestamp NOT NULL default CURRENT_TIMESTAMP;
Query OK, 0 rows affected (0.16 sec)
Records: 0 Duplicates: 0 Warnings: 0

Kiểm tra mô tả của bảng một lần nữa.

Truy vấn như sau

mysql> desc removeOnUpdateCurrentTimeStampDemo;

Sau đây là kết quả

+---------------------+-------------+------+-----+-------------------+----------------+
| Field               | Type        | Null | Key | Default           | Extra          |
+---------------------+-------------+------+-----+-------------------+----------------+
| Id                  | int(11)     | NO   | PRI | NULL              | auto_increment |
| Name                | varchar(20) | YES  |     | NULL              |                |
| UserUpdateTimestamp | timestamp   | NO   |     | CURRENT_TIMESTAMP |                |
+---------------------+-------------+------+-----+-------------------+----------------+
3 rows in set (0.00 sec)

Nếu bạn muốn xóa CURRENT_TIMESTAMP mặc định, thì truy vấn như sau

mysql> alter table removeOnUpdateCurrentTimeStampDemo
   - > change UserUpdateTimestamp UserUpdateTimestamp timestamp NOT NULL;
Query OK, 0 rows affected (0.12 sec)
Records: 0 Duplicates: 0 Warnings: 0

Kiểm tra mô tả của bảng một lần nữa.

Truy vấn như sau

mysql> desc removeOnUpdateCurrentTimeStampDemo;

Sau đây là kết quả

+---------------------+-------------+------+-----+---------+----------------+
| Field               | Type        | Null | Key | Default | Extra          |
+---------------------+-------------+------+-----+---------+----------------+
| Id                  | int(11)     | NO   | PRI | NULL    | auto_increment |
| Name                | varchar(20) | YES  |     | NULL    |                |
| UserUpdateTimestamp | timestamp   | NO   |     | NULL    |                |
+---------------------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

Bây giờ hãy nhìn vào kết quả mẫu ở trên, chúng tôi đã xóa BẬT CẬP NHẬT THỜI GIAN HIỆN TẠI.