在之前的配置中,除了目录之外,唯独添加了这一项配置,为什么?

因为mysql中timestamp类型和其他的类型不一样;

在之前先了解一下current timestamp和on update current timestamp:

a. current timestamp :当insert时,如果timestamp列属性设为current_timestamp,那么该列会被强制写入当前的系统时间(无论你是不是设置了默认值);

b. on update current timestamp:当update时,如果字段属性设为on update current_timestamp,那么该列会被强制写入当前系统时间(无论是否要更新该列);

官方解释如下:

1. 在默认情况下(explicit_defaults_for_timestamp=1),如果timestamp数据列没有明确设置null属性,那么该列会被自动添加not null属性,如果写入数据时设置null,那么mysql会自动把当前时间戳写入该列,作为默认值 ...

注:其他类型的列,在没有明确设置not null的情况下,默认是允许null值;

2. 表中如果有多个timestamp列,那么第一列如果没有指定null或者设置默认值,也没有指定on update语句,那么该列会被自动添加default current_timestamp和on update current_timestamp属性;

3.同第2条,除了第一列之外,其他的timestamp列如果没有指定null属性,也没有指定默认值,那么该列会被自动添加default '0000-00-00 00:00:00'属性;如果insert语句没有为该列添加指定值,那么该列会被插入'0000-00-00 00:00:00',而且不会提示警告;

所以我们在my.ini配置文件中,添加了该项配置,否则启动时,会提示以下报警:

[Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
Please use --explicit_defaults_for_timestamp server option (see
documentation for more details).

那么添加了该项配置(explicit_defaults_for_timestamp=1)之后有什么效果呢?

1. 如果timestamp列没有显示指定not null属性,那么默认允许null,当插入数据时,不会被写入currrent timestamp;

2. mysql不会自动给第一个timestamp列添加default current_timestamp和on update current_timestamp属性(除非你在建表时显示指明);

3. 如果timestamp列指明是not null属性,而且没有指定默认值,这时候写入数据时如果不给该列写入数据,那么有以下两种情况:

  a. 指定strict sql_mode的情况下,会直接报错;

  b. 未指定strict sql_mode的情况下,会默认插入'0000-00-00 00:00:00',并发生一个报警;

mysql 配置 explicit_defaults_for_timestamp的更多相关文章

  1. 【MySQL】explicit_defaults_for_timestamp 参数详解

    简介:explicit_defaults_for_timestamp 系统变量决定MySQL服务端对timestamp列中的默认值和NULL值的不同处理方法. 此变量自MySQL 5.6.6 版本引入 ...

  2. linux下安装apache与php;Apache+PHP+MySQL配置攻略

    1.apache   在如下页面下载apache的for Linux 的源码包    http://www.apache.org/dist/httpd/;   存至/home/xx目录,xx是自建文件 ...

  3. MySQL 配置

    MySQL 配置 1.服务启动: (1)使用 service 启动:service mysqld start (2)使用 mysqld 脚本启动:/etc/inint.d/mysqld start ( ...

  4. mysql配置mysql-proxy读写分离

    MySQL配置读写分离 192.168.23.131与192.168.23.132两台服务器,131是主,132是从,131是读写,132是只读.myql-proxy的IP是192.168.23.13 ...

  5. mysql配置之skip-external-locking

    转载:http://www.kuqin.com/database/20120815/328905.html MySQL的配置文件my.cnf中默认存在一行skip-external-locking的参 ...

  6. MySQL配置

    一.登录MySQL 要登录到MySQL只需要使用如下命令. mysql -h localhost -u root -p localhost:IP地址: root:用户名: database:数据库名( ...

  7. hive 的mysql配置

    hive默认使用的是Derby数据库,Derby是一个嵌入式数据库,数据库一般创建在运行hive命令的目录,如果切换目录运行,则找不到数据库 hive mysql配置: 官网地址:https://cw ...

  8. 2016年5月19日php,mysql配置

    1.php配置 1. 配置disable_functiondisable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshe ...

  9. CentOS6.5 MySQL 配置设置总结笔记

    三.登录MySQL 登录MySQL的命令是mysql, mysql 的使用语法如下:  mysql [-u username] [-h host] [-p[password]] [dbname]  u ...

随机推荐

  1. NOIP 模拟 路径求和 - Tarjan+dfs+码

    题目大意: 各一个奇环内向森林,求每两个点对间的距离之和.无法到达则距离为-1. 分析: 首先Tarjan找出size大于1的连通分量(环),环中的边的贡献可以单独计算. 然后从入度为0的点向内dfs ...

  2. ubuntu14.04下unix网络编程 环境的配置

    在ubuntu下 首先:在unpv13e文件加下 ./configure cd lib make cd ../libfree make cd ../liggai make cd .. vim lib/ ...

  3. springboot启动tomcat报错java.lang.NoClassDefFoundError: javax/el/ELManager仅记录

    Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'o ...

  4. [Android]TextView点击获取部分内容

    TextView控件本身有很多属性可以进行控制,如果要获取内容只需要getText()方法就可以实现,同时也可以为TextView设置各种监听器.但是,如果想要实现点击获取TextView内部的部分内 ...

  5. 一个简易版的Function.prototype.bind实现

    重新看<JavaScript设计模式与开发实践>一书,第32页发现个简易版的Function.prototype.bind实现,非常容易理解,记录在这了. Function.prototy ...

  6. 关于undefind

    var undefined = "东方云游"; alert(undefined); // undefined 不一定为undefined ie8(包含ie8)以下会返回 " ...

  7. python 反转列表

    翻转一个链表 您在真实的面试中是否遇到过这个题? Yes 样例 给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null 步骤是这样的: ...

  8. WPF 3D 模型旋转

    原文:WPF 3D 模型旋转 WPF 是 Microsoft 在 Framework3.0 中支持的一种技术,它能作出很绚丽的界面,同时它也支持3D的操作.在3D操作主要包括平移(Translate) ...

  9. Chrome扩展,应用开发学习笔记之2---恶搞百度一下

    Chrome扩展,应用开发学习笔记之2 恶搞百度一下 前面我们介绍了一个最简单的chrome扩展时钟,如今我来介绍一下一个恶搞百度一下的chrome扩展程序. 前面说过,manifest.json文件 ...

  10. matlab 二元函数的画法

    plot:画线(curve,二维空间以及三维空间) surf:画面(surface,一般在三维空间) 1. surf 绘图函数 surf 是 surface 的缩写,表示表面(显然至少三维图像才会有表 ...