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 18 MySQL
详解MySQL中的pid与socket
Jun 15 MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 MySQL
MySQL令人大跌眼镜的隐式转换
Aug 23 MySQL
如何避免mysql启动时错误及sock文件作用分析
Jan 22 MySQL
MySQL实现配置主从复制项目实践
Mar 31 MySQL
MySQL 数据库 增删查改、克隆、外键 等操作
May 11 MySQL
Mysql开启外网访问
May 15 MySQL
MySQL中正则表达式(REGEXP)使用详解
Jul 07 MySQL
MySQL生成千万测试数据以及遇到的问题
Aug 05 MySQL
MySQL自定义函数及触发器
Aug 05 MySQL
MySQL 原理与优化之原数据锁的应用
Aug 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
一个查看session内容的函数
2006/10/09 PHP
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
PHP实现的简单缓存类
2015/07/29 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
js select常用操作控制代码
2010/03/16 Javascript
javascript 验证日期的函数
2010/03/18 Javascript
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
基于vuejs实现一个todolist项目
2017/04/11 Javascript
基于vue.js快速搭建图书管理平台
2017/10/29 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
2018/11/26 Javascript
微信小程序开发之转发分享功能
2019/10/22 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
AI人工智能 Python实现人机对话
2017/11/13 Python
详解python如何在django中为用户模型添加自定义权限
2018/10/15 Python
python 通过可变参数计算n个数的乘积方法
2019/06/13 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
如何一键升级Python所有包
2020/11/05 Python
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
EJB3推出JPA的原因
2013/10/16 面试题
高中生的自我鉴定范文
2014/01/24 职场文书
老师对学生的评语
2014/04/18 职场文书
项目建议书怎么写
2014/05/15 职场文书
顶岗实习协议书
2015/01/29 职场文书
撤诉申请书法院范本
2015/05/18 职场文书
幽默导游词开场白
2015/05/29 职场文书
社区干部培训心得体会
2016/01/06 职场文书