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:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
Jun 26 MySQL
详细聊聊关于Mysql联合查询的那些事儿
Oct 24 MySQL
MySQL的InnoDB存储引擎的数据页结构详解
Mar 03 MySQL
Mysql外键约束的创建与删除的使用
Mar 03 MySQL
MySQL慢查询优化解决问题
Mar 17 MySQL
mysql数据插入覆盖和时间戳的问题及解决
Mar 25 MySQL
Mysql调整优化之四种分区方式以及组合分区
Apr 13 MySQL
MySQL去除密码登录告警的方法
Apr 20 MySQL
讲解MySQL增删改操作
May 06 MySQL
MySQL数据库Innodb 引擎实现mvcc锁
May 06 MySQL
MySQL池化框架学习接池自定义
Jul 23 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配置文件中最常用四个ini函数
2007/03/19 PHP
PHP eval函数使用介绍
2013/12/08 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
javascript new一个对象的实质
2010/01/07 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
ie9 提示'console' 未定义问题的解决方法
2014/03/20 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
JS中frameset框架弹出层实例代码
2016/04/01 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
jQuery加密密码到cookie的实现代码
2017/04/18 jQuery
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
javascript实现考勤日历功能
2018/11/29 Javascript
使用python实现扫描端口示例
2014/03/29 Python
分析Python中解析构建数据知识
2018/01/20 Python
Python实现的文本对比报告生成工具示例
2018/05/22 Python
python感知机实现代码
2019/01/18 Python
对Python3 序列解包详解
2019/02/16 Python
Python进程间通信Queue消息队列用法分析
2019/05/22 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
2019/06/13 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
HTML5新特性之用SVG绘制微信logo
2016/02/03 HTML / CSS
普通大学毕业生自荐信
2013/11/04 职场文书
护理学中专毕业生求职信
2013/11/11 职场文书
法学专业本科生自荐信范文
2013/12/17 职场文书
质量月活动策划方案
2014/03/10 职场文书
运动会口号16字
2014/06/07 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
医德医风学习心得体会
2016/01/25 职场文书