加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

Mysql实例MySQL 5.6 中 TIMESTAMP 的变化分析

发布时间:2020-12-12 02:49:08 所属栏目:MySql教程 来源:网络整理
导读:《Mysql实例MySQL 5.6 中 TIMESTAMP 的变化分析》要点: 本文介绍了Mysql实例MySQL 5.6 中 TIMESTAMP 的变化分析,希望对您有用。如果有疑问,可以联系我们。 MYSQL学习 在MySQL 5.6.6之前,TIMESTAMP的默认行动: MYSQL学习 ■TIMESTAMP列如果没有明确声明NU

《Mysql实例MySQL 5.6 中 TIMESTAMP 的变化分析》要点:
本文介绍了Mysql实例MySQL 5.6 中 TIMESTAMP 的变化分析,希望对您有用。如果有疑问,可以联系我们。

MYSQL学习在MySQL 5.6.6之前,TIMESTAMP的默认行动:

MYSQL学习■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′,且没有警告.

MYSQL进修

MYSQL进修

MYSQL学习2列TIMESTAMP未声明为NULL的默认行动

MYSQL学习从MySQL5.6.6开始这种默认设置的办法被废弃了.在MySQL启动时会出现以下警告:

MYSQL学习
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. 
Please use --explicit_defaults_for_timestamp server option 
(seedocumentation for more details).

MYSQL学习关闭警告,在my.cnf中参加

MYSQL学习
[mysqld] 
explicit_defaults_for_timestamp=true 

MYSQL学习重启MySQL后差错消失,这时TIMESTAMP的行为如下:

MYSQL学习■TIMESTAMP如果没有显示声明NOT NULL,是允许NULL值的,可以直接设置改列为NULL,而没有默认填充行为.
■TIMESTAMP不会默认分派DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP属性.

MYSQL进修

MYSQL进修TIMESTAMP 不设置是否为NULL

MYSQL学习■声明为NOT NULL且没有默认子句的TIMESTAMP列是没有默认值的.往数据表中插入列,又没有给TIMESTAMP列赋值时,如果是严格SQL模式,会抛出一个差错,如果严格SQL模式没有启用,该列会赋值为'0000-00-00 00:00:00′,同时出现一个警告.(这和MySQL处理其他时间类型数据一样,如DATETIME)

MYSQL进修

MYSQL进修TIMESTAMP 默认设置为NOT NULL

MYSQL进修Note:

MYSQL进修以上内容和存储引擎选择无关.

欢迎参与《Mysql实例MySQL 5.6 中 TIMESTAMP 的变化分析》讨论,分享您的想法,编程之家PHP学院为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读