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 update set 和 and的区别
May 08 MySQL
MySQL中使用or、in与union all在查询命令下的效率对比
May 26 MySQL
Unity连接MySQL并读取表格数据的实现代码
Jun 20 MySQL
mysql备份策略的实现(全量备份+增量备份)
Jul 07 MySQL
MySQL 那些常见的错误设计规范,你都知道吗
Jul 16 MySQL
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
Aug 23 MySQL
MySQL 服务和数据库管理
Nov 11 MySQL
mysql中varchar类型的日期进行比较、排序等操作的实现
Nov 17 MySQL
数据分析数据库ClickHouse在大数据领域应用实践
Apr 03 MySQL
MySQL分区以及建索引的方法总结
Apr 13 MySQL
提高系统的吞吐量解决数据库重复写入问题
Apr 23 MySQL
详细介绍MySQL中limit和offset的用法
May 06 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模拟登录并获取数据实例
2014/07/01 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
2015/09/20 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
php面向对象基础详解【星际争霸游戏案例】
2020/01/23 PHP
基于Jquery的动态添加控件并取值的实现代码
2010/09/24 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
javascript基础语法学习笔记
2016/01/04 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
详解Angular Reactive Form 表单验证
2017/07/06 Javascript
vue.js实现备忘录功能的方法
2017/07/10 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
2018/03/14 Javascript
关于vue-router的那些事儿
2018/05/23 Javascript
webpack公共组件引用路径简化小技巧
2018/06/15 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
[57:16]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第二场
2014/05/26 DOTA
Python使用稀疏矩阵节省内存实例
2014/06/27 Python
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
wxPython实现画图板
2020/08/27 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
香港礼品网站:GiftU eshop
2017/09/01 全球购物
缓解脚、腿和背部疼痛:Z-CoiL鞋
2019/03/12 全球购物
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
会计专业大学生求职信范文
2014/01/28 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL
Python批量解压&压缩文件夹的示例代码
2022/04/04 Python