MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 参数

MySQL是一种关系型数据库管理系统,其中TIMESTAMP是一种常用的时间类型。在MySQL 5.6版本中,TIMESTAMP类型的行为有一些变化,并且引入了新的explicit_defaults_for_timestamp参数来控制TIMESTAMP的默认值。下文将详细讲解这一过程。

理解TIMESTAMP类型

在MySQL中,TIMESTAMP是一种时间类型,可以使用标准日期、时间格式插入数据。它占用4个字节,并且存储时区无关。

TIMESTAMP类型在MySQL 5.6版本中有一些改变。在之前的版本中,TIMESTAMP类型默认情况下会使用当前时间作为默认值。但是,在MySQL 5.6版本中,TIMESTAMP类型的默认行为变成了使用0作为默认值。

举例来说,以下的SQL语句在MySQL 5.6以下版本中会将time字段设置为当前时间,但是在MySQL 5.6版本中,time字段会被设置为0:

CREATE TABLE example (
    id INT(11) NOT NULL AUTO_INCREMENT,
    time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
);

使用 explicit_defaults_for_timestamp 参数

为了控制MySQL中TIMESTAMP类型的默认行为,MySQL 5.6版本引入了新的explicit_defaults_for_timestamp参数。该参数默认情况下被设置为OFF,即使用0作为默认值。

以下是如何将explicit_defaults_for_timestamp参数设置为ON的示例:

mysql> SET @@explicit_defaults_for_timestamp = ON;
Query OK, 0 rows affected (0.00 sec)

现在,如果我们创建一个新表并向其中插入数据,时间字段将会显示当前时间而不是0。以下是如何使用explicit_defaults_for_timestamp参数创建一个表的示例:

CREATE TABLE example (
    id INT(11) NOT NULL AUTO_INCREMENT,
    time TIMESTAMP NOT NULL,
    PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
  ROW_FORMAT=DYNAMIC
  @@explicit_defaults_for_timestamp = ON;

注意,我们需要在CREATE TABLE语句的结尾添加 @@explicit_defaults_for_timestamp = ON; 部分,以明确指定该表需要使用该参数。

总结

在MySQL 5.6版本中,TIMESTAMP类型的默认行为发生了变化,它现在使用0作为默认值。要修改该行为,可以使用新的explicit_defaults_for_timestamp参数来控制。此外,我们还演示了如何在表创建时启用该参数的方法。该参数的默认值为OFF,因此需要明确设置为ON才能生效。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 参数 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程

    好的。 以下是编译安装PHP7并安装Redis扩展与Swoole扩展的完整攻略。 环境准备 在开始过程之前需要先安装必要的软件: GCC 4.8+ 或 Clang Bison 2.7+,Flex 2.5.35+ 和 re2c 0.13.6+ OpenSSL 开发包 1.0.x 或 1.1.x libxml2 开发包 2.7.0+ libcurl 开发包 7.…

    database 2023年5月22日
    00
  • 百万级别知乎用户数据抓取与分析之PHP开发

    以下是百万级别知乎用户数据抓取与分析之PHP开发的完整攻略: 1. 准备工作 在开始之前,需要先安装PHP环境和相关扩展,如CURL扩展、SimpleXML扩展等。 除此之外,还需要获取知乎的API访问令牌,可以参考知乎开放平台官方文档进行获取和配置。 2. 数据抓取 在完成准备工作之后,就可以开始进行数据抓取了。 2.1. 获取用户ID列表 首先需要获取一…

    database 2023年5月22日
    00
  • MySQL5.7.14下载安装图文教程及MySQL数据库语句入门大全

    MySQL5.7.14下载安装图文教程及MySQL数据库语句入门大全 MySQL5.7.14安装教程 打开MySQL官网并下载适用于您系统的MySQL Installer。 执行下载的MySQL Installer并选择”Custom”安装选项。 选择需要安装的MySQL产品及版本,如MySQL Server 5.7.14和MySQL Workbench 6…

    database 2023年5月21日
    00
  • MySQL的语法及其使用指南

    MySQL的语法及其使用指南 MySQL是一个免费的关系型数据库管理系统,可用于存储和管理大量数据。本文将介绍MySQL的语法及其使用指南。 连接到MySQL 连接到MySQL需要使用MySQL客户端,可以使用命令行客户端或图形界面客户端。以下是使用命令行连接到MySQL的步骤: 打开终端或命令提示符。 输入以下命令连接到MySQL: mysql -u us…

    database 2023年5月22日
    00
  • JavaWeb三大组件之一的Filter详解

    JavaWeb三大组件之一的Filter详解 Filter是JavaWeb三大组件之一,它的作用是过滤请求并对请求做出必要的处理,例如,对于某些请求需要进行权限验证、日志记录等处理,这个时候Filter就可以派上用场了。本文将详细讲解Filter的使用方式和常用的应用场景。 一、Filter的使用方式 1.1 定义Filter类 可以通过实现javax.se…

    database 2023年5月22日
    00
  • linux备份与恢复基础知识

    Linux备份与恢复基础知识 为什么需要备份? 在日常使用计算机的过程中,我们可能会遇到各种问题,例如:1. 硬件故障2. 恶意软件攻击3. 意外删除重要文件4. 操作失误导致数据被覆盖或丢失 这些问题都可能导致数据的丢失或不可挽回的损坏。而备份可以帮助我们解决这些问题,保证数据的安全性与完整性。 如何备份? 1. 命令行备份 在Linux中,我们可以通过命…

    database 2023年5月22日
    00
  • Linux下Navicat15激活的详细步骤

    下面是“Linux下Navicat15激活的详细步骤”的攻略: 步骤一:下载Navicat15并安装 首先,我们需要下载Navicat15的安装包并将其安装到Linux系统中。你可以从Navicat官方网站上下载适用于Linux系统的Navicat15安装包。 步骤二:获取Navicat15的注册码 接下来,我们需要访问Navicat官方网站并注册账号,登录…

    database 2023年5月22日
    00
  • redis 解决key的乱码问题,并清理详解

    下面是关于如何解决Redis中键名乱码问题以及相应的清理方法的完整攻略。 1. 问题背景 在Redis中,键名可能会出现乱码的情况,这种情况一般是由于Redis服务器和客户端之间采用的不同字符集导致的。如果在Redis键名中包含有非ASCII字符(如中文),在某些情况下,这些字符会被转换为乱码。这样会导致我们无法通过键名查询到相应的键值,造成数据访问的问题。…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部