mysql为数据表添加修改时间及易错点记录


1. 为数据表添加创建时间、修改时间
-- 向table_demo表添加新的字段:创建时间(c_time),默认值为当前时间。
ALTER table_demo ADD c_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
-- 向table_demo表添加新的字段:修改时间(m_time),默认值为数据更新时间。
ALTER table_demo ADD m_time DATETIME  NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

2. current_timestamp on update 的效果

数据表中的记录(record)的任意字段有更新时,该记录的m_time(修改时间)字段均会自动更新为update语句执行的时间。


3. 误区

误: 任意一条update语句执行时,m_time均会自动更新为语句执行时间。
正: 只有update语句对原有数据做到了实质性更新,m_time才会更新为执行时间,否则m_time将保持不变。

4. 举例:

table_demo原有数据如下:

idnamec_timem_time
1menber012020/06/06 0:00:002020/06/06 0:00:00
2menber022020/06/06 0:00:002020/06/06 0:00:00

现在分别执行以下两条语句:

-- 语句1,name字段在语句执行前后无变化,不存在实质性变更
UPDATE table_demo SET name = menber01 WHERE id =1;
-- 语句2,name字段在语句执行后发生改变,即存在实质性变更。
UPDATE table_demo SET name = aaa WHERE id =1;

语句1执行后,table_demo结果:

idnamec_timem_time
1menber012020/06/06 0:00:002020/06/06 0:00:00
2menber022020/06/06 0:00:002020/06/06 0:00:00

语句2执行后,table_demo结果:

idnamec_timem_time
1aaa2020/06/06 0:00:002020/06/07 18:00:00
2menber022020/06/06 0:00:002020/06/06 0:00:00
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值