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 14 MySQL
MySQL连表查询分组去重的实现示例
Jul 01 MySQL
MySQL高速缓存启动方法及参数详解(query_cache_size)
Jul 01 MySQL
MySQL 四种连接和多表查询详解
Jul 16 MySQL
Mysql数据库手动及定时备份步骤
Nov 07 MySQL
如何创建一个创建MySQL数据库中的datetime类型
Mar 21 MySQL
MySql分区类型及创建分区的方法
Apr 13 MySQL
MySQL数据库Innodb 引擎实现mvcc锁
May 06 MySQL
MySQL慢查询中的commit慢和binlog中慢事务的区别
Jun 16 MySQL
MySQL事务的隔离级别详情
Jul 15 MySQL
MySQL的表级锁,行级锁,排它锁和共享锁
Jul 15 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
基于mysql的论坛(6)
2006/10/09 PHP
浅谈php serialize()与unserialize()的用法
2013/06/05 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
php获取远程文件内容的函数
2015/11/02 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
jQuery中width()方法用法实例
2014/12/24 Javascript
js获取元素外链样式的方法
2015/01/27 Javascript
基于jQuery仿淘宝产品图片放大镜特效
2020/10/19 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
jQuery插件扩展extend的简单实现原理
2016/06/24 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
解决vue打包项目后刷新404的问题
2018/03/06 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
实用Javascript调试技巧分享(小结)
2019/06/18 Javascript
JavaScript创建表格的方法
2020/04/13 Javascript
Python对象的深拷贝和浅拷贝详解
2014/08/25 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
2017/12/19 Python
Python实现屏幕截图的两种方式
2018/02/05 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
python 字典的打印实现
2019/09/26 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
Keras搭建自编码器操作
2020/07/03 Python
pip install命令安装扩展库整理
2021/03/02 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
Jdbc数据访问技术面试题
2012/03/30 面试题
户外拓展活动方案
2014/02/11 职场文书
公司周年庆典标语
2014/10/07 职场文书
学校党委干部个人对照检查材料思想汇报
2014/10/09 职场文书
工作检讨书怎么写
2014/10/10 职场文书
党员理论学习心得体会
2016/01/21 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书