前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 8.0 TIMESTAMP 默认赋值问题

MySQL 8.0 TIMESTAMP 默认赋值问题

作者头像
HCG_Sky
发布2022-03-31 21:28:55
3.3K0
发布2022-03-31 21:28:55
举报
文章被收录于专栏:HCG_Sky's BlogHCG_Sky's Blog

TIMESTAMP 没有 TIME??? TIMESTAMP默认值设置问题

前言

 今天在学习MySQL的DML(增删改表的据)时,在跟着视频学习时,老师说了TIMESTAMP这个数据类型如果不为null,则默认使用当前的系统时间,来自动赋值,但是在实际操作时并没有,而是默认为null,思考了一下可能是版本的问题(我使用的是8.0,视频教学中使用的是5.7),因此我在搜寻、探索一番后得到了解决的方案,在此记录一下

首先我们创建一个含有TIMESTAMP类型数据的表 Test

代码语言:javascript
复制
CREATE TABLE Test(
  string VARCHAR(20),
  insert_time TIMESTAMP
);

接着我们查看一下表的数据结构,确认没有问题

代码语言:javascript
复制
DESC Test;

然后我们按照教学中所说的只为string这个列进行赋值,按理说insert_time会自动应用本地时间进行赋值

代码语言:javascript
复制
INSERT INTO Test(string) VALUES('张三');        # 赋值
SELECT * FROM Test;        # 查看表的内容

 可以看到并没有自动应用本地时间进行赋值,而且值为NULL,就很难受,时间戳没有时间哈哈哈哈

解决方法

方法一: 我们可以在赋值时顺便给insert_time赋值CURRENT_TIMESTAMP,即可解决,但是这样失去灵魂,所以有方法二 方法二: 在建表时我们在数据类型后加上一句NOT NULL DEFAULT CURRENT_TIMESTAMP修改默认值即可

下面是方法一的演示,语句按顺序执行

代码语言:javascript
复制
INSERT INTO Test(string,insert_time) VALUES('张三',CURRENT_TIMESTAMP);        # 赋值
SELECT * FROM Test;        # 查看表的内容

 可以看到已经默认应用本地时间进行赋值了,但这样时间戳失去了点灵魂,所以我们看看方法二

下面是方法二的演示,语句按顺序执行

代码语言:javascript
复制
CREATE TABLE Test(
  string VARCHAR(20),
  insert_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
代码语言:javascript
复制
DESC Test;        #查看表的数据结构
代码语言:javascript
复制
INSERT INTO Test(string) VALUES('张三');        # 赋值
SELECT * FROM Test;        # 查看表的内容

 可以看到在我们没有对insert_time进行赋值时,已经默认应用本地时间进行赋值了

总结:不同版本有不同的特性,需要我们去关注、学习、探索

本篇文章采用 署名 4.0 国际 (CC BY 4.0) 许可协议进行许可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 解决方法
    相关产品与服务
    云数据库 MySQL
    腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档