MySQL 5.6 中 TIMESTAMP 的变化分析
作者:mdxy-dxy 发布时间:2024-01-22 04:30:14
在MySQL 5.6.6之前,TIMESTAMP的默认行为:
■TIMESTAMP列如果没有明确声明NULL属性,默认为NOT NULL。(而其他数据类型,如果没有显示声明为NOT NULL,则允许NULL值。)设置TIMESTAMP的列值为NULL,会自动存储为当前timestamp。
■表中的第一个TIMESTAMP列,如果没有声明NULL属性、DEFAULT或者 ON UPDATE,会自动分配 DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP 属性。
■表中第二个TIMESTAMP列,如果没有声明为NULL或者DEFAULT子句,默认自动分配'0000-00-00 00:00:00′。插入行时没有指明改列的值,该列默认分配'0000-00-00 00:00:00′,且没有警告。
2列TIMESTAMP未声明为NULL的默认行为
从MySQL5.6.6开始这种默认设置的方法被废弃了。在MySQL启动时会出现以下警告:
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
Please use --explicit_defaults_for_timestamp server option
(seedocumentation for more details).
关闭警告,在my.cnf中加入
[mysqld]
explicit_defaults_for_timestamp=true
重启MySQL后错误消失,这时TIMESTAMP的行为如下:
■TIMESTAMP如果没有显示声明NOT NULL,是允许NULL值的,可以直接设置改列为NULL,而没有默认填充行为。
■TIMESTAMP不会默认分配DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP属性。
TIMESTAMP 不设置是否为NULL
■声明为NOT NULL且没有默认子句的TIMESTAMP列是没有默认值的。往数据表中插入列,又没有给TIMESTAMP列赋值时,如果是严格SQL模式,会抛出一个错误,如果严格SQL模式没有启用,该列会赋值为'0000-00-00 00:00:00′,同时出现一个警告。(这和MySQL处理其他时间类型数据一样,如DATETIME)
TIMESTAMP 默认设置为NOT NULL
Note:
以上内容和存储引擎选择无关。


猜你喜欢
- 一、介绍正则表达式各语言都有自己的规范,但是基本都差不多,都是由元字符的组合来进行匹配;由于Nmap内嵌的服务与版本探测是使用的Perl正则
- 一、简介基础知识:需要一定的html和css的语法知识基本概念:PHP(超文本预处理器)是一种通用开源脚本语言,在服务器上执行。PHP文件:
- 一、简介Locust 是一个易于使用,分布式,用户负载测试工具。它用于负载测试 web 站点(或其他系统),并计算出一个系统可以处理多少并发
- 在Vue项目中编写代码的时候经常会碰到这种烦人的无故报错,其实这是ESLint代码,如图下:解决办法:File>Settings>
- 接触 Python 不久,看到很多人写2048,自己也捣鼓了一个,主要是熟悉Python语法。程序使用Python3 写的,代码150行左右
- 本文实例讲述了PHP使用JpGraph绘制折线图操作。分享给大家供大家参考,具体如下:下载jpgraph类库,使用的是src目录下的类文件。
- 具体代码如下所示:<%@ page language="java" import="com.studen
- 题目描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它
- 1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。 2、 开始->程序->Oracle - OraHome81-
- 一、导入所需的库import turtleimport randomfrom math import *二、生成斐波那契数列斐波那契数列是指
- 关于树莓派四驱小车的运动方向控制、摄像头方向控制已经在前面的两篇博文中介绍过。有需要的可以参考。本文也是基于上述两个python文件就绪的情
- 使用py时可能需要连续运行多条shell 命令1.# coding: UTF-8import sysreload(sys)sys.setde
- 一、需求分析有一批key已经写入到3个txt文件中,每一个txt文件有30万行记录。现在需要读取这些txt文件,判断key是否在数据仓库中。
- 1. 什么是XSLT 大家可能听说过XSL(eXtensible Stylesheet Language),XSL和我们这里说的XSLT从狭
- 新建图像文件后选Channels面板,新建Alpha1通道:输入文字; &nbs
- 一.权限表mysql数据库中的3个权限表:user 、db、 host权限表的存取过程是:1)先从user表中的host、 user、 pa
- 1、说明在使用selenium时,不可避免的会遇到一些异常情况,比如超时、没有找到节点的错误等等。一旦出现这样的错误,程序就不能再运行了。这
- MySQL binlog记录的所有操作实际上都有对应的事件类型的,譬如STATEMENT格式中的DML操作对应的是QUERY_EVENT类型
- 一、概述spark 有三大引擎,spark core、sparkSQL、sparkStreaming,spark core 的关键抽象是 S
- 目录一. 加载数据1. 继承Dataset类并重写关键方法2. 使用Dataloader加载数据二. 模型设计三. 训练四. 测试结语pyt