zoukankan      html  css  js  c++  java
  • MySQL问题记录——定义timestamp类型的数据

    MySQL问题记录——定义timestamp类型的数据

    摘要:本文主要记录了在使用MySQL的过程中定义timestamp类型数据时遇到的问题以及解决方案。

    问题重现

    在Windows环境下安装MySQL,配置服务的时候出现的问题:

    1 D:AllMySQLmysql-5.6.44-winx64in>mysqld --initialize
    2 2019-07-01 19:16:13 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    3 2019-07-01 19:16:13 0 [Note] mysqld (mysqld 5.6.44) starting as process 14996 ...
    4 
    5 D:AllMySQLmysql-5.6.44-winx64in>

    解决办法

    在配置文件中加入:

    1 [mysqld]
    2 # explicit_defaults_for_timestamp
    3 explicit_defaults_for_timestamp=true

    问题说明

    MySQL5.6.6以前:

    如果timestamp类型的列指定值为null,默认为当前timestamp。

    如果timestamp类型的列没有指定值为null,也就是没有传值,默认为非null的一个值。

    表中第一个timestamp列,如果没有指定值为null、也没有设置默认值,在插入和更新时都会设置为当前时间。

    表中第一个timestamp列之后的所有timestamp列,如果没有被定义为null、定义default值,会设置为'0000-00-00 00:00:00'。

    MySQL5.6.6以后,需要在配置文件里设置 explicit_defaults_for_timestamp=true ,其含义为:

    如果timestamp类型的列指定值为null,默认为当前timestamp。

    如果timestamp类型的列没有指定值为null,也就是没有传值,默认为null。

    声明timestamp类型的列不为能为null,而且没有指定默认值。在插入时timestamp类型的列没有指定值,如果是严格sql模式,会抛出一个错误,如果严格sql模式没有启用,该列会赋值为‘0000-00-00 00:00:00’,同时出现警告。

  • 相关阅读:
    较简单的date转化成格式化的timeString
    字符串截取的用法
    UIImageView的图片轮播属性
    label.lineBreakMode设置lable中文字过长时的显示格式,其中可以有末尾以省略号显示。
    UIImageView的contentMode属性
    iOS开发----关于导航条的研究
    iOS 开发对图片进行处理
    设置按钮中的图片的旋转,并且旋转之后不变形
    调整按钮的子控件titleLable和imageView的间距的属性和用法
    ios开发之--数据库开发
  • 原文地址:https://www.cnblogs.com/shamao/p/11112076.html
Copyright © 2011-2022 走看看