MySQL编写建表语句,如何优雅处理创建时间与更新时间

在 MySQL 中,可以使用 TIMESTAMP 或者 DATETIME 数据类型来存储日期和时间信息,并结合默认值和触发器来实现自动更新 createTime 和 updateTime 字段。

以下是一个示例建表语句,演示如何设置自动更新的 createTime 和 updateTime 字段:

sql 复制代码
CREATE TABLE your_table_name (
    id INT AUTO_INCREMENT PRIMARY KEY,
    data VARCHAR(255),
    createTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updateTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

在这个例子中,createTime 使用 CURRENT_TIMESTAMP 默认值,这将在插入数据时自动设置为当前时间戳。而 updateTime 使用 ON UPDATE CURRENT_TIMESTAMP 触发器,这将在更新数据时自动更新为当前时间戳。

当你插入一条新数据时,createTime 和 updateTime 会被设置为当前时间戳。当你更新数据时,只有 updateTime 会被更新为当前时间戳,而 createTime 保持不变。

需要注意的是,使用 TIMESTAMP 数据类型,时间戳的精确度为秒级。如果你需要更高精确度的时间戳,可以考虑使用 DATETIME 数据类型,并使用触发器实现自动更新。

就问你们优不优雅。

相关推荐
学编程的小程21 小时前
筑牢数据安全防线——金仓数据库SQL防火墙硬核防护解析
数据库·sql
ReSearch21 小时前
工业物联网的“瘦身”革命:Go 实现 20MB 级边缘存储,基于 LSM-Tree 的深度定制实践
数据库·go
TDengine (老段)21 小时前
TDengine IDMP 组态面板 —— 锚点
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
Navicat中国21 小时前
Navicat 模式设计全解:解决数据库开发 3 大核心痛点
数据库·数据库开发·navicat·模式设计
oradh21 小时前
Oracle 19c 单机安装总结_linux8
数据库·oracle·oracle 19c·oracle安装
瀚高PG实验室21 小时前
瀚高数据库使用IPv6连接的配置方法
数据库·瀚高数据库
pupudawang21 小时前
mysql之联合索引
数据库·mysql
刘晨鑫121 小时前
MySQL的初步认识和安装
数据库·mysql
电商API&Tina21 小时前
淘宝商品视频的采集需要注意哪些问题||item_video-获得淘宝商品视频
大数据·网络·数据库·人工智能·python·音视频
czlczl2002092521 小时前
Redis集群批处理下的陷阱
数据库·redis·缓存