MySQL中CURRENT_TIMESTAMP的使用方式

 更新时间:2021年11月25日 08:46:19   作者:爱上香锅的麻辣  
这篇文章主要介绍了MySQL中CURRENT_TIMESTAMP的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

CURRENT_TIMESTAMP的使用

众所周知,MySQL的日期类型可以使用CURRENT_TIMESTAMP来指定默认值,但是这个跟MySQL的版本及日期的具体类型有关,只有5.6之后的版本才能使用CURRENT_TIMESTAMP作为DATETIME的默认值。

例如:

ALTER TABLE t_user ADD update_time DATETIME DEFAULT CURRENT_TIMESTAMP

在5.6之前的版本,使用CURRENT_TIMESTAMP作为默认值时,就会出现下面的错误

[Err] 1067 - Invalid default value for 'update_time'

在MySQL 5.6.5版本之前,DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP只适用于TIMESTAMP,而且一张表中,最多允许一个TIMESTAMP字段采用该特性。 从MySQL 5.6.5开始, DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP同时适用于TIMESTAMP和DATETIME,且不限制数量。

timestamp使用CURRENT_TIMESTAMP报错

项目出现如下错误:

Error updating database.

Cause:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'createTime' cannot be null

数据模型如下:

  /* 创建时间不可为空*/
  createTime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ,
  /* 更新时间不可为空*/
  updateTime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' ,

经过一系列的问题排查,定位到是因为不同版本的MySQL数据库全局变量“explicit_defaults_for_timestamp”的问题。

-- 查看explicit_defaults_for_timestamp默认值
SHOW GLOBAL VARIABLES LIKE "explicit_defaults_for_timestamp"; 

-- 修改explicit_defaults_for_timestamp默认值
SET @@global.explicit_defaults_for_timestamp=OFF;

参数值为"ON"的情况:

在这里插入图片描述

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MYSQL row_number()与over()函数用法详解

    MYSQL row_number()与over()函数用法详解

    这篇文章主要介绍了MYSQL row_number()与over()函数用法详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • mysql 8.0.15 安装配置方法图文教程(Windows10 X64)

    mysql 8.0.15 安装配置方法图文教程(Windows10 X64)

    这篇文章主要为大家详细介绍了Windows10 X64 mysql 8.0.15 安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • 详解MySQL从入门到放弃-安装

    详解MySQL从入门到放弃-安装

    这篇文章主要介绍了MySQL从入门到放弃-安装,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • MySQL处理JSON常见函数的使用

    MySQL处理JSON常见函数的使用

    这篇文章主要介绍了MySQL处理JSON常见函数的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • MySQL修改my.cnf配置不生效的解决方法

    MySQL修改my.cnf配置不生效的解决方法

    这篇文章主要介绍了MySQL修改my.cnf配置不生效的解决方法,简单分析了配置文件的执行顺序与原理并提出解决方法,需要的朋友可以参考下
    2016-04-04
  • MySQL对window函数执行sum函数可能出现的一个Bug

    MySQL对window函数执行sum函数可能出现的一个Bug

    这篇文章主要给大家介绍了关于MySQL对window函数执行sum函数可能出现的一个Bug,文中通过示例代码介绍的非常详细,对大家的学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-07-07
  • Windows下MySQL5.6查找my.ini配置文件的方法

    Windows下MySQL5.6查找my.ini配置文件的方法

    今天小编就为大家分享一篇Windows下MySQL5.6查找my.ini配置文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 详解MySQL中default的使用

    详解MySQL中default的使用

    这篇文章主要介绍了MySQL中default的使用,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • mysql 8.0 错误The server requested authentication method unknown to the client解决方法

    mysql 8.0 错误The server requested authentication method unkno

    在本篇文章里小编给大家整理的是关于mysql 8.0 错误The server requested authentication method unknown to the client解决方法,有此需要的朋友们可以学习下。
    2019-08-08
  • MySQL性能优化技巧分享

    MySQL性能优化技巧分享

    这篇文章主要介绍了MySQL性能优化的相关技巧,帮助大家提高数据库的性能,感兴趣的朋友可以了解下
    2020-09-09

最新评论