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

就问你们优不优雅。

相关推荐
Han.miracle7 分钟前
JavaEE--网络编程 http请求 :URL 方法get 和 post
数据库·sql·计算机网络
好好研究10 分钟前
MyBatis框架 - 注解形式
java·数据库·mysql·maven·mybatis
爬山算法11 分钟前
Redis(154)Redis的数据一致性如何保证?
数据库·redis·bootstrap
e***09622 分钟前
postgresql链接详解
数据库·postgresql
踢球的打工仔26 分钟前
mysql数据表的基本操作
数据库·mysql
踢球的打工仔31 分钟前
mysql链接(2)
数据库·mysql
专注API从业者33 分钟前
构建分布式京东商品数据采集器:基于微服务的架构设计与实现
数据结构·数据库·分布式·微服务·架构
h***015435 分钟前
MySQL数据库的数据文件保存在哪?MySQL数据存在哪里
数据库·mysql
k***216037 分钟前
MySQL 批量插入详解:快速提升大数据导入效率的实战方法
大数据·数据库·mysql
chenyuhao202442 分钟前
MySQL事务
开发语言·数据库·c++·后端·mysql