Server version: 5.5.33-31.1-log Percona Server (GPL), Release rel31.1, Revision 566

mysql> CREATE TABLE `t1` (
`ID` int(11) NOT NULL DEFAULT '1',
`NAME` varchar(10) NOT NULL DEFAULT '',
`CREATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB DEFAULT CHARSET=utf8

mysql> select * from t1;
Empty set (0.00 sec)

mysql> insert into t1 (create_time) values (null);
Query OK, 1 row affected (0.00 sec)

mysql> select * from t1;
+----+------+---------------------+
| ID | NAME | CREATE_TIME |
+----+------+---------------------+
| 1 | | 2015-04-15 17:27:09 |
+----+------+---------------------+
1 row in set (0.00 sec)

从上面实验看,在5.533版本中,create_time虽然定义为not null ,但是实际是能插入null只的,而且自动转换为了current_time。接下来看5.6的操作:
Server version: 5.6.22-71.0-log Percona Server (GPL), Release 71.0, Revision 726

mysql> CREATE TABLE `t1` (
`ID` int(11) NOT NULL DEFAULT '1',
`NAME` varchar(10) NOT NULL DEFAULT '',
`CREATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

mysql> select * from t1;
Empty set (0.00 sec)

mysql> insert into t1 (create_time) values (null);
ERROR 1048 (23000): Column 'CREATE_TIME' cannot be null
mysql> select * from t1;
Empty set (0.00 sec)

直接报错,拦截语句插入。在5.6中是通过开启参数来实现解决这个BUG的。下面是摘自官方文档的描述
With explicit_defaults_for_timestamp enabled, inserting NULL into a TIMESTAMP NOT NULL column now produces an error
(as it already did for other NOT NULL data types), instead of inserting the current timestamp. (Bug #68472, Bug #16394472)

mysql 5.5和5.6版本关于timestamp not null类型字段关于null的处理的更多相关文章

  1. 扩展mybatis和通用mapper,支持mysql的geometry类型字段

    因项目中需要用到地理位置信息的存储.查询.计算等,经过研究决定使用mysql(5.7版本)数据库的geometry类型字段来保存地理位置坐标,使用虚拟列(Virtual Generated Colum ...

  2. TIMESTAMP类型字段在SQL Server和MySQL中的含义和使用

    公众号上转的满天飞的一篇文章,MySQL优化相关的,无意中瞄到一句“尽量使用TIMESTAMP而非DATETIME”,之前对TIMESTAMP也不太熟悉,很少使用,于是查了一下两者的区别. 其实,不管 ...

  3. Quartz.NET 3.0.7 + MySql 实现动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一)

    原文:Quartz.NET 3.0.7 + MySql 实现动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一) 前端时间,接到领导任务,写了一个调度框架.今天决定把心路历程记 ...

  4. Mac卸载mysql并安装mysql升级到8.0.13版本

    引言 今天mysql升级到8.0.13版本,遇到了很多问题,在此进行总结方便以后查看. 卸载mysql brew uninstall mysql sudo rm /usr/local/mysql su ...

  5. mysql 调优 来自5.6版本官方手册

    注意:下面示例中的key1和key2代表两个索引,key_part1和key_part2代表一个复合索引的第一列和第二列.non_key代表非索引列. 优化SQL语句 where语句优化: mysql ...

  6. MySQL 数据库SQL语句——高阶版本2

    MySQL 数据库SQL语句--高阶版本2 实验准备 数据库表配置: mysql -uroot -p show databases; create database train_ticket; use ...

  7. MySQL 数据库SQL语句——高阶版本1

    MySQL 数据库SQL语句--高阶版本 实验准备,数据表配置 mysql -uroot -p show databases; create database train_ticket; use tr ...

  8. java Date时间的各种转换方式和Mysql存时间类型字段的分析

    一:各种Date之间的转换方法 public class TimeTest { public static void main(String[] args) { Date date = new Dat ...

  9. mysql5.6以上版本: timestamp current_timestamp报1064/1067错误

    mysql5.6以上版本: timestamp current_timestamp报1064/1067错误 在创建时间字段的时候 DEFAULT CURRENT_TIMESTAMP表示当插入数据的时候 ...

随机推荐

  1. 最新版本的JDK安装和配置(Java SE 10.0.2)

    1.废话少说,要么百度JDK,要么直接点传送门http://www.oracle.com/technetwork/java/javase/downloads/index.html.这里需要说的JDK包 ...

  2. centos 6.10源码安装mysql5.5.62实验

    查看系统版本 [root@ABC ~]# cat /etc/redhat-release CentOS release 6.10 (Final) 下载mysql5.5.62源码包,解压后安装 tar ...

  3. debian sftp/ssh

    检查是否安装poenssh dpkg --get-selections | grep openssh 如下表示已经安装

  4. 《图解设计模式》读书笔记7-2 Mediator模式

    目录 Mediator模式简介 示例程序 示例程序类图 代码 Mediator模式角色和类图 角色 模式类图 思路拓展 简单化 角色复用 Mediator模式简介 Mediator模式即中介者模式,可 ...

  5. unittest框架扩展(自动生成用例)自动化-上

    一.思想: 基于数据驱动和代码驱动结合的自动化测试框架. 二.自动化测试框架步骤: 1.获取用例,用例格式:.ymal 2.调用接口 3.校验结果 4.发送测试报告 5.异常处理 6.日志模块 三.基 ...

  6. Jmeter之事物控制器

    在我们需要统计一组取样器的统计数据,可以将这一组取样器放置在事物控制器下,进行统计. 一.界面显示 二.配置说明 1.名称:标识 2.注释:备注 3.Generate parent sample: 不 ...

  7. 优化 | Redis AOF重写导致的内存问题 不错

    一.问题说明 业务上接到报警提示服务器内存爆了,登录查看发现机器剩余内存还很多,怀疑是被OOM了,查看/var/log/messages: kernel: [25918282.632003] Out ...

  8. vue组件父子间通信02

    三.组件间通信($parent $refs) 父组件要想获取子组件的数据:①在调用子组件的时候,指定ref属性<child-component ref="mySon"> ...

  9. unity editor 折叠树

    https://blog.csdn.net/e295166319/article/details/52370575 需要两个类:树节点类和界面实现类 1:树节点类(TreeNode) using Un ...

  10. discover面试

    电话面 英语 20191009 面试我的是一个小姐姐,她是数据挖掘分析师,声音很甜很好听.全程英文 (1)please introduce yourself in two minutes (2)我对你 ...