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 数据类型,并使用触发器实现自动更新。

就问你们优不优雅。

相关推荐
splage1 分钟前
maven导入spring框架
数据库·spring·maven
HalvmånEver9 分钟前
MySQL数据库基础入门总结(从0到1)
linux·数据库·mysql
zs宝来了9 分钟前
InnoDB 锁机制:记录锁、间隙锁与临键锁
mysql·innodb·锁机制·记录锁·间隙锁
执笔画情ora11 分钟前
My-Oracle数据库优化-with as 分析优化
数据库·sql
专注API从业者19 分钟前
淘宝 API 调用链路追踪实战:基于 SkyWalking/Pinpoint 的全链路监控搭建
大数据·开发语言·数据库·skywalking
stone525 分钟前
一个主从库主键同步的方案(未完)
数据库·oracle
菜菜小狗的学习笔记27 分钟前
黑马程序员Redis--问题整理(黑马点评)
数据库·redis·缓存
不会聊天真君64732 分钟前
pgsql笔记
数据库·笔记
echola_mendes33 分钟前
InfluxDB(一)——一个高效处理数据的时序数据库
数据库·时序数据库
qq_283720051 小时前
MySQL 8.0.x Windows 保姆级安装教程(图文详解+踩坑全标记)
mysql·安装教程·保姆安装