MySQL之坑 – timestamp默认值

内容分享16小时前发布
0 0 0


explicit_defaults_for_timestamp 系统变量决定MySQL服务端对timestamp列中的默认值和NULL值的不同处理方法。

此变量自MySQL 5.6.6 版本引入,分为全局级别和会话级别,可动态更新,默认值为OFF。

在8.0之中默认值改为了on**


explicit_defaults_for_timestamp=OFF,表明使用默认的timestamp默认格式;timestamp类型的默认格式是什么样的呢?

1.和其它字段类型不一样,这个字段默认为not null.而且不允许设置default null.

2.第一列timestamp字段,如果不强制指定默认值或on update属性的话,就会默认设为DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP。

3.非第一列timestamp字段,如果不强制指定默认值,DEFAULT ‘0000-00-00 00:00:00’

4.往该列中插入null值,会自动转化为默认值;


explicit_defaults_for_timestamp=ON,则关闭timestamp default的特性:

1.如果没有被显示指定not null,则默认为null;

2.默认值也会是null而非CURRENT_TIMESTAMP;

3.如果指定了not null属性,inset式不指定该字段的值,strict sql_mode下,会报错。非strict sql_mode下插入’0000-00-00 00:00:00’;

————————————————

原文链接:
https://blog.csdn.net/mmmmmCJP/article/details/116755901

© 版权声明

相关文章

暂无评论

none
暂无评论...