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

就问你们优不优雅。

相关推荐
222you4 分钟前
在云服务器上配置redis环境(OpenCloudOS)
数据库·redis·缓存
智能化咨询5 分钟前
(99页PPT)智慧景区一体化建设方案(附下载方式)
大数据·数据库
AI题库6 分钟前
PostgreSQL 18 从新手到大师:实战指南 - 1.2 关系型数据库基础
数据库·postgresql
IT教程资源D35 分钟前
[N_101]基于springboot,vue企业网盘系统
mysql·vue·前后端分离·springboot网盘
我可以将你更新哟38 分钟前
【爬虫】爬取斗罗大陆漫画,面向对象封装(存入数据库)
数据库·爬虫·python
忙里偷闲学python38 分钟前
mysql
linux·数据库·mysql·oracle
byzh_rc38 分钟前
[算法设计与分析-从入门到入土] 递归
数据库·人工智能·算法·机器学习·支持向量机
学Linux的语莫1 小时前
Milvus向量数据库的基础连接操作
数据库·milvus
小智RE0-走在路上1 小时前
Python学习笔记(13) --Mysql,Python关联数据库
数据库·python·学习
x66ccff1 小时前
Claude Code 安装方法
android·java·数据库