MySQL之坑 – timestamp默认值

内容分享6个月前发布
1 0 0
全能 AI 聚合平台 免费

一站式接入主流 AI 大模型,支持对话 · 生图 · 生视频,即开即用

ChatGPT Claude Gemini Grok DeepSeek 通义千问 Ollama
AI对话 AI生图 AI视频
免费使用 →


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
暂无评论...