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

就问你们优不优雅。

相关推荐
喵叔哟几秒前
第6章:Neo4j数据导入与导出
数据库·oracle·neo4j
甜甜的资料库34 分钟前
基于微信小程序的睡眠宝系统源码数据库文档
数据库·微信小程序·小程序
代码老y1 小时前
Redis:现代应用开发的高效内存数据存储利器
数据库·redis·缓存
远方16092 小时前
15-Oracle 23ai Vector Search Similarity Search-向量相似性和混合搜索-实操
数据库·ai·oracle
zz0723202 小时前
第二十周:Redis(二)
数据库·redis·缓存
杨超越luckly2 小时前
“详规一张图”——新加坡土地利用数据
前端·数据库·arcgis·信息可视化·数据分析
NineData3 小时前
NineData数据库DevOps功能全面支持百度智能云向量数据库 VectorDB
数据库·人工智能·mysql
TDengine (老段)3 小时前
TDengine 开发指南—— UDF函数
java·大数据·数据库·物联网·数据分析·tdengine·涛思数据
Waloo3 小时前
STUFF 函数
数据库·sql server
浮生若梦l4 小时前
在 Spring Boot 项目里,MYSQL中json类型字段使用
spring boot·mysql·json