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表的增删改查基础教程
Apr 07 MySQL
mysql的MVCC多版本并发控制的实现
Apr 14 MySQL
MySQL 数据丢失排查案例
May 08 MySQL
详解MySQL连接挂死的原因
May 18 MySQL
mysql事务隔离级别详情
Oct 24 MySQL
MySQL面试题讲解之如何设置Hash索引
Nov 01 MySQL
Mysql数据库表中为什么有索引却没有提高查询速度
Feb 24 MySQL
MYSQL优化之数据表碎片整理详解
Apr 03 MySQL
MySQL创建管理RANGE分区
Apr 13 MySQL
详细介绍MySQL中limit和offset的用法
May 06 MySQL
MySQL中JOIN连接的基本用法实例
Jun 05 MySQL
MySQL下载安装配置详细教程 附下载资源
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安装问题
2006/10/09 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
PHP中strtr字符串替换用法详解
2014/11/26 PHP
详细分析PHP 命名空间(namespace)
2020/06/30 PHP
JavaScript 高级语法介绍
2009/06/15 Javascript
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
图片轮换效果实现代码(点击按钮停止执行)
2013/04/12 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
jquery easyui中treegrid用法的简单实例
2014/02/18 Javascript
JavaScript中textRange对象使用方法小结
2015/03/24 Javascript
js中获取时间new Date()的全面介绍
2016/06/20 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
JavaScript数据结构链表知识详解
2016/11/21 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
微信小程序如何调用新闻接口实现列表循环
2019/07/02 Javascript
Ant Design Vue 添加区分中英文的长度校验功能
2020/01/21 Javascript
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
pycharm配置pyqt5-tools开发环境的方法步骤
2019/02/11 Python
使用python实现哈希表、字典、集合操作
2019/12/22 Python
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
美国最好的钓鱼、狩猎和划船装备商店:Bass Pro Shops
2018/12/02 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
毕业生就业自荐信
2013/12/04 职场文书
音乐节策划方案
2014/06/09 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
个人四风问题对照检查材料思想汇报
2014/10/06 职场文书
2014年酒店工作总结范文
2014/11/17 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书
高中历史教学反思
2016/02/19 职场文书
幼儿园语言教学反思
2016/02/23 职场文书