数据库遇到的问题之“datetime设置默认为CURRENT_TIMESTAMP时报无效默认问题”和“时区问题”
一、问题1
问题描述:
今日加入创建时间和修改时间,并设置为默认CURRENT_TIMESTAMP时,出现错误,指向sql中的datetime字段,查了一下,发现是版本问题
立马查询自己的MySQL版本,发现是5.5.40的,
datetime设置默认为CURRENT_TIMESTAMP时,需要在5.6版本以上才可以
解决方案=
还是老实用:timestamp类型,去设置默认值为当前时间:CURRENT_TIMESTAMP吧
二、问题2
以为应该新建成功了 又来了一个报错,也是版本问题,这个限制在后续版本中取消了
主要问题:在MySQL 5.6.5版本之前,是只能有一列能够在初始化的时候或者被更新的时候自动设置为CURRENT_TIMESTAMP的值
问题描述:
在利用MySQL语句建立表结构时出现了Error Code : 1293
Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause错误
其建表语句为:
CREATE TABLE user ( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年龄', email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱', gmt_create timestamp DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', gmt_update timestamp DEFAULT CURRENT_TIMESTAMP COMMENT '邮箱',
PRIMARY KEY (id)
);
错误原因:在创建表结构时有且只有一个可以在“创建时间”或者“修改时间”上时带上CURRENT_TIMESTAMP
解决办法:
只让一个TIMESTAMP列在设置默认值或更新时带上CURRENT_TIMESTAMP
我这里选择了“创建时间”默认,修改时间就没有默认了,
CREATE TABLE user ( id BIGINT(20) NOT NULL COMMENT '主键ID', name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名', age INT(11) NULL DEFAULT NULL COMMENT '年龄', email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱', create_time timestamp DEFAULT CURRENT_TIMESTAMP COMMENT '邮箱', update_time timestamp COMMENT '邮箱', PRIMARY KEY (id) );
三、问题3
是关于数据库中时间时区的时差的问题
问题描述
默认值为CURRENT_TIMESTAMP 与实际时间相差8小时
解决方案
-- 设置全局
set @@global.time_zone = '+08:00';
-- 立即刷新数据库 flush privileges;
* 博客文章部分截图及内容来自于学习的书本及相应培训课程,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。
* 备注:王子威
* 我的网易邮箱:wzw_1314_520@163.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2020-09-17 List集合与Array数组之间的互相转换
2020-09-17 有效括号--算法
2020-09-17 list集合的快速筛选条件方法
2020-09-17 jdbc的快速入门(需要mysql-connector-java-5.1.39-bin.jar包)
2020-09-17 WzwJDBC 自定义工具类(获取连接,释放资源)
2020-09-17 解决登录的注入问题
2020-09-17 数据库连接模板(增删改)