优秀的编程知识分享平台

网站首页 > 技术文章 正文

MySQL之坑 - timestamp默认值(mysql时间字段默认值)

nanyue 2024-10-27 11:30:31 技术文章 9 ℃

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

Tags:

最近发表
标签列表