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查询学习之基础查询操作
May 08 MySQL
浅谈mysql执行过程以及顺序
May 12 MySQL
MySQL中utf8mb4排序规则示例
Aug 02 MySQL
MySQL中一条update语句是如何执行的
Mar 16 MySQL
MySQL优化常用的19种有效方法(推荐!)
Mar 17 MySQL
MySQL中IO问题的深入分析与优化
Apr 02 MySQL
mysql性能优化以及配置连接参数设置
May 06 MySQL
MySql数据库触发器使用教程
Jun 01 MySQL
mysql中关键词exists的用法实例详解
Jun 10 MySQL
MySQL外键约束(Foreign Key)案例详解
Jun 28 MySQL
Mysql表数据比较大情况下修改添加字段的方法实例
Jun 28 MySQL
MySQL count(*)统计总数问题汇总
Sep 23 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使用CURL获取302跳转后的地址实例
2014/05/04 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
php实现获取文件mime类型的方法
2015/02/11 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
PHP PDOStatement::fetchAll讲解
2019/01/31 PHP
php实现session共享的实例方法
2019/09/19 PHP
Laravel ORM 数据model操作教程
2019/10/21 PHP
修改发贴的编辑功能
2007/03/07 Javascript
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
JS控制按钮10秒钟后可用的方法
2015/12/22 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
JS中的作用域链
2017/03/01 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
微信小程序实现工作时间段选择
2019/02/15 Javascript
JavaScript this指向相关原理及实例解析
2020/07/10 Javascript
vuex的数据渲染与修改浅析
2020/11/26 Vue.js
Python中的模块和包概念介绍
2015/04/13 Python
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
初中校园广播稿
2014/02/02 职场文书
教师网络培训感言
2014/03/09 职场文书
元宵节晚会主持人串词
2014/03/25 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
商业用房租赁协议书
2014/10/13 职场文书
公司人力资源管理制度
2015/08/05 职场文书
解析MySQL索引的作用
2022/03/03 MySQL
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL