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 相关文章推荐
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
Apr 05 MySQL
MySQL慢查询的坑
Apr 28 MySQL
教你解决往mysql数据库中存入汉字报错的方法
May 06 MySQL
MySQL 如何设计统计数据表
Jun 15 MySQL
详细聊聊关于Mysql联合查询的那些事儿
Oct 24 MySQL
MySQL分区表管理命令汇总
Mar 21 MySQL
分享几个简单MySQL优化小妙招
Mar 31 MySQL
mysql查询结果实现多列拼接查询
Apr 03 MySQL
在MySQL中你成功的避开了所有索引
Apr 20 MySQL
MySQL 语句执行顺序举例解析
Jun 05 MySQL
MySQL提升大量数据查询效率的优化神器
Jul 07 MySQL
MySql统计函数COUNT的具体使用详解
Aug 14 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备份MYSQL数据的多种方法
2014/01/15 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
php多功能图片处理类分享(php图片缩放类)
2014/03/14 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
PHP使用header()输出图片缓存实例
2014/12/09 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
PHP获取类私有属性的3种方法
2020/09/10 PHP
CL vs ForZe BO5 第四场 2.13
2021/03/10 DOTA
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
2015/11/17 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
javascript使用Blob对象实现的下载文件操作示例
2020/04/18 Javascript
Vue 修改网站图标的方法
2020/12/31 Vue.js
从零学python系列之教你如何根据图片生成字符画
2014/05/23 Python
python实现复制整个目录的方法
2015/05/12 Python
Python函数参数操作详解
2018/08/03 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
python 如何实现遗传算法
2020/09/22 Python
HTML5 manifest离线缓存的示例代码
2018/08/08 HTML / CSS
Europcar比利时:租车
2019/08/26 全球购物
智乐游戏测试笔试题
2014/05/21 面试题
高级Java程序员面试题
2016/06/23 面试题
行政人员岗位职责
2013/12/08 职场文书
幼儿教育感言
2014/02/05 职场文书
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
不尊敬老师的检讨书
2014/12/21 职场文书
Python 中的Sympy详细使用
2021/08/07 Python
javascript的setTimeout()使用方法总结
2021/11/20 Javascript
Java时间工具类Date的常用处理方法
2022/05/25 Java/Android