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

就问你们优不优雅。

相关推荐
10km16 分钟前
jsqlparser(六):TablesNamesFinder 深度解析与 SQL 格式化实现
java·数据库·sql·jsqlparser
微三云、小叶30 分钟前
“我店模式“当下观察:三方逻辑未变,三大升级重构竞争力
大数据·数据库
JavaArchJourney1 小时前
MySQL 索引:原理篇
java·后端·mysql
Jasonakeke1 小时前
【重学 MySQL】九十三、MySQL的字符集的修改与底层原理详解
数据库·mysql·adb
麦兜*1 小时前
MongoDB 聚合管道(Aggregation)高级用法:数据统计与分析
java·数据库·后端·mongodb·springboot·springcloud
老友@3 小时前
MySQL 索引失效全解析与优化指南
数据库·mysql·索引失效·索引
共享家95273 小时前
MySQL-事务(下)-MySQL事务隔离级别与MVCC
数据库·mysql
秋难降4 小时前
零基础学习SQL(十)——性能分析
数据库·sql·mysql
cooldream20094 小时前
centos7中MySQL 5.7.32 到 5.7.44 升级指南:基于官方二进制包的原地替换式升级
数据库·mysql
风清再凯5 小时前
【一】Django框架版本介绍
数据库·django·sqlite