MySQL 5.6 中 TIMESTAMP 的变化分析

作者:mdxy-dxy 时间:2024-01-22 04:30:14 

在MySQL 5.6.6之前,TIMESTAMP的默认行为:

■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 5.6 中 TIMESTAMP 的变化分析

MySQL 5.6 中 TIMESTAMP 的变化分析

2列TIMESTAMP未声明为NULL的默认行为

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


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

关闭警告,在my.cnf中加入


[mysqld]
explicit_defaults_for_timestamp=true

重启MySQL后错误消失,这时TIMESTAMP的行为如下:

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

MySQL 5.6 中 TIMESTAMP 的变化分析

TIMESTAMP 不设置是否为NULL

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

MySQL 5.6 中 TIMESTAMP 的变化分析

TIMESTAMP 默认设置为NOT NULL

Note:

以上内容和存储引擎选择无关。

标签:TIMESTAMP
0
投稿

猜你喜欢

  • Django logging配置及使用详解

    2022-06-01 14:12:48
  • 聊聊Javascript中try catch的2个作用

    2024-04-22 13:25:57
  • Python Django 数据库的相关操作详解

    2024-01-26 21:02:46
  • 关系型数据库与非关系型数据库简介

    2024-01-19 05:36:44
  • 如何在sae中设置django,让sae的工作环境跟本地python环境一致

    2022-03-09 22:04:54
  • Python元组常见操作示例

    2023-06-28 20:48:26
  • SQL CASE 表达式的具体使用

    2024-01-28 09:57:29
  • SQL Server错误代码大全及解释(留着备用)

    2012-07-11 16:17:03
  • swiper Scrollbar滚动条组件详解

    2024-04-19 10:03:28
  • Python爬虫实现selenium处理iframe作用域问题

    2021-05-23 03:09:42
  • Python给你的头像加上圣诞帽

    2023-08-28 11:30:41
  • mysql连接查询详解

    2024-01-15 16:42:11
  • 详解如何利用amoeba(变形虫)实现mysql数据库读写分离

    2024-01-18 12:03:05
  • Python3.9.1中使用match方法详解

    2023-09-14 09:51:21
  • Python中使用json.load()和json.loads()加载json数据的方法实例

    2021-12-15 20:12:31
  • python写日志文件操作类与应用示例

    2021-09-29 01:16:38
  • php导出excel格式数据问题

    2023-07-13 22:46:06
  • JavaScript substr() 字符串截取函数使用详解

    2024-06-05 09:55:13
  • form的submit方法和submit事件(onsubmit)

    2008-09-28 13:29:00
  • Keras—embedding嵌入层的用法详解

    2021-06-05 01:08:17
  • asp之家 网络编程 m.aspxhome.com