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 相关文章推荐
MySQL8.0.24版本Release Note的一些改进点
Apr 22 MySQL
详解Mysql和Oracle之间的误区
May 18 MySQL
修改MySQL的数据库引擎为INNODB的方法
May 26 MySQL
MySQL中in和exists区别详解
Jun 03 MySQL
如何搭建 MySQL 高可用高性能集群
Jun 21 MySQL
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
Jun 26 MySQL
MySQL 用 limit 为什么会影响性能
Sep 15 MySQL
深入讲解数据库中Decimal类型的使用以及实现方法
Feb 15 MySQL
MySQL数据库如何给表设置约束详解
Mar 13 MySQL
解决MySQL报“too many connections“错误
Apr 19 MySQL
sql注入报错之注入原理实例解析
Jun 10 MySQL
MySql如何将查询的出来的字段进行转换
Jun 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中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
JS+CSS3制作炫酷的弹窗效果
2016/11/08 Javascript
ES6学习教程之对象字面量详解
2017/10/09 Javascript
Vue.js实现列表清单的操作方法
2017/11/15 Javascript
Vue项目使用CDN优化首屏加载问题
2018/04/01 Javascript
JavaScript剩余操作符Rest Operator详解
2019/07/20 Javascript
用 js 写一个 js 解释器过程详解
2019/08/02 Javascript
Vue路由对象属性 .meta $route.matched详解
2019/11/04 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
详解vue3.0 的 Composition API 的一种使用方法
2020/10/26 Javascript
[02:59]DOTA2完美大师赛主赛事第三日精彩集锦
2017/11/25 DOTA
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
2018/02/02 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
python实现共轭梯度法
2019/07/03 Python
Django 多表关联 存储 使用方法详解 ManyToManyField save
2019/08/09 Python
基于torch.where和布尔索引的速度比较
2020/01/02 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
python-jwt用户认证食用教学的实现方法
2021/01/19 Python
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
Regatta官网:英国最受欢迎的户外服装和鞋类品牌
2019/05/01 全球购物
求职简历中个人的自我评价
2013/12/01 职场文书
2014年9.18纪念日演讲稿
2014/09/14 职场文书
2015元旦标语横幅
2014/12/09 职场文书
校车安全管理责任书
2015/05/11 职场文书
反邪教教育心得体会
2016/01/15 职场文书
python通过函数名调用函数的几种方法总结
2021/06/07 Python
js前端图片加载异常兜底方案
2022/06/21 Javascript
js面向对象编程OOP及函数式编程FP区别
2022/07/07 Javascript