我是靠谱客的博主 动人鸵鸟,最近开发中收集的这篇文章主要介绍mysql中记录的定义_MySQL问题记录——定义timestamp类型的数据,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

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

问题重现

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

1 D:AllMySQLmysql-5.6.44-winx64bin>mysqld --initialize2 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-winx64bin>

解决办法

在配置文件中加入:

1 [mysqld]2 #explicit_defaults_for_timestamp3 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’,同时出现警告。

最后

以上就是动人鸵鸟为你收集整理的mysql中记录的定义_MySQL问题记录——定义timestamp类型的数据的全部内容,希望文章能够帮你解决mysql中记录的定义_MySQL问题记录——定义timestamp类型的数据所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部