数据库遇到的问题之“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;

 

posted @   骚哥  阅读(7149)  评论(0编辑  收藏  举报
编辑推荐:
· 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 数据库连接模板(增删改)
点击右上角即可分享
微信分享提示