MySQL中CURRENT_TIMESTAMP的使用方式


Posted in MySQL onNovember 27, 2021

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中CURRENT_TIMESTAMP的使用方式

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

MySQL 相关文章推荐
MySQL pt-slave-restart工具的使用简介
Apr 07 MySQL
JDBC连接的六步实例代码(与mysql连接)
May 12 MySQL
MySQL系列之七 MySQL存储引擎
Jul 02 MySQL
MySQL 服务和数据库管理
Nov 11 MySQL
Mysql分库分表之后主键处理的几种方法
Feb 15 MySQL
MySQL优化及索引解析
Mar 17 MySQL
详解MySQL的主键查询为什么这么快
Apr 03 MySQL
一文了解MYSQL三大范式和表约束
Apr 03 MySQL
Windows下载并安装MySQL8.0.x 版本的完整教程
Apr 10 MySQL
Mysql开启外网访问
May 15 MySQL
MySQL中正则表达式(REGEXP)使用详解
Jul 07 MySQL
MySQL事务的ACID特性以及并发问题方案
Jul 15 MySQL
MySQL Innodb索引机制详细介绍
Nov 23 #MySQL
浅谈mysql哪些情况会导致索引失效
Nov 20 #MySQL
MySQL数据库索引的最左匹配原则
Nov 20 #MySQL
mysql 联合索引生效的条件及索引失效的条件
Nov 20 #MySQL
MySQL利用UNION连接2个查询排序失效详解
Nov 20 #MySQL
浅谈MySql整型索引和字符串索引失效或隐式转换问题
Nov 20 #MySQL
mysql5.7的安装及Navicate长久免费使用的实现过程
You might like
php实现快速排序的三种方法分享
2014/03/12 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
利用Laravel事件系统如何实现登录日志的记录详解
2017/05/20 PHP
如何通过View::first使用Laravel Blade的动态模板详解
2017/09/21 PHP
PHP实现将多个文件压缩成zip格式并下载到本地的方法示例
2018/05/23 PHP
科讯商业版中用到的ajax空间与分页函数
2007/09/02 Javascript
网页前台通过js非法字符过滤代码(骂人的话等等)
2010/05/26 Javascript
用js实现判断当前网址的来路如果不是指定的来路就跳转到指定页面
2011/05/02 Javascript
深入分析js中的constructor和prototype
2012/04/07 Javascript
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
jquery事件与函数的使用介绍
2013/09/29 Javascript
实例代码讲解jquery easyui动态tab页
2015/11/17 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
深入理解setTimeout函数和setInterval函数
2016/05/20 Javascript
老生常谈JQuery data方法的使用
2016/09/09 Javascript
最常见的左侧分类菜单栏jQuery实现代码
2016/11/28 Javascript
js模糊查询实例分享
2016/12/26 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
[02:18]DOTA2英雄基础教程 育母蜘蛛
2014/01/20 DOTA
Python程序设计入门(1)基本语法简介
2014/06/13 Python
Python解析并读取PDF文件内容的方法
2018/05/08 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
搬家公司的创业计划书
2014/01/01 职场文书
信息专业毕业生五年职业规划参考
2014/02/06 职场文书
《祁黄羊》教学反思
2014/04/22 职场文书
入党积极分子党支部意见
2015/06/02 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
MySQL通过binlog恢复数据
2021/05/27 MySQL
sql server偶发出现死锁的解决方法
2022/04/10 SQL Server