datetime

MYSQL 中的datetime类型,在设计表时允许default null,但有时候需要建索引和其他的原因,需要改成 not null,这个时候就需要注意.

1. 刚开始,列UPDATE_TIME datetime default null,

如果没有为列设置值,该列为null,

2.在表中UPDATE_TIME 列已有数据为null的时候,需要为列 UPDATE_TIME 修改成 not null

直接运行 alter table tableName modify UPDATE_TIME datetime not null.

这时候,原先为null的列,这时将会改变成'0000-00-00 00:00:00',这个时候应用程序读取值的时候会报错的。

解决办法:update tableName set UPDATE_TIME = current_timestamp() where UPDATE_TIME is null;

有人会怀疑这是不是太暴力了,不管三七二十一就将数据改成当前时间。其实仔细想想,对于原先值为null的,它本身就无什么特别意义。我们将它update成当前时间,本身也没有什么特别影响。

这时候,如果在插入数据的时候仍没有指定UPDATE_TIME 列的值的话,那么保存到数据库中将会默认的为'0000-00-00 00:00:00'.

如果需要指定默认值,需要将UPDATE_TIME 列将datetime类型改成timestamp类型,并表alter table tableName UPDATE_TIME  default current_timestamp;

转载于:https://www.cnblogs.com/xuegang/archive/2011/09/08/2171306.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值