删除mysql on update_如何从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

- > );

使用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)

现在查看更新CURRENT_TIMESTAMP上的Extra字段。删除ON UPDATE CURRENT_TIMESTAMP的查询如下:mysql> alter table removeOnUpdateCurrentTimeStampDemo

- > change UserUpdateTimestamp UserUpdateTimestamp timestamp NOT NULL default CURRENT_TIMESTAMP;

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;

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。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值