如何在 MySQL 中刪除現有列上的 ON UPDATE CURRENT_TIMESTAMP?
ON UPDATE CURRENT_TIMESTAMP 定義了在沒有顯式時間戳的情況下更新將導致更新為當前時間戳值。
您可以使用 ALTER 命令從列中刪除 ON UPDATE CURRENT_TIMESTAMP。
語法如下所示
ALTER TABLE yourTableName CHANGE yourTimeStampColumnName yourTimeStampColumnName timestamp NOT NULL default 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 - > ); Query OK, 0 rows affected (0.54 sec)
使用 DESC 命令檢查表的描述。
查詢如下所示
mysql> desc removeOnUpdateCurrentTimeStampDemo;
以下是輸出
+---------------------+-------------+------+-----+-------------------+-----------------------------+ | 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)
現在檢視 Extra 欄位,其中有 on update CURRENT_TIMESTAMP。刪除 ON UPDATE CURRENT_TIMESTAMP 的查詢如下所示
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
再次檢查表的描述。
查詢如下所示
mysql> desc removeOnUpdateCurrentTimeStampDemo;
以下是輸出
+---------------------+-------------+------+-----+-------------------+----------------+ | 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)
如果要刪除預設的 CURRENT_TIMESTAMP,則查詢如下所示
mysql> alter table removeOnUpdateCurrentTimeStampDemo - > change UserUpdateTimestamp UserUpdateTimestamp timestamp NOT NULL; Query OK, 0 rows affected (0.12 sec) Records: 0 Duplicates: 0 Warnings: 0
再次檢查表的描述。
查詢如下所示
mysql> desc removeOnUpdateCurrentTimeStampDemo;
以下是輸出
+---------------------+-------------+------+-----+---------+----------------+ | 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)
現在檢視上面的示例輸出,我們已經刪除了 ON UPDATE CURRENT TIMESTAMP。
廣告