在使用mysql进行业务开发的过程中,设计数据库表结构时通常会有两个字段create_time和update_time,这两个分别代表者记录的创建时间和更新时间,用于业务的分析和查询。那除了每次业务记录有变更时主动去更新这个两个字段还有没有更优雅的更新方式呢?有,使用mysql的CURRENT_TIMESTAMP。
文章目录
字段创建时指定默认值
DEFAULT CURRENT_TIMESTAMP记录更新时自动更新这个字段( 表示每次更新这条数据的时候,该字段都会更新成当前时间)
ON UPDATE CURRENT_TIMESTAMP这两个操作是mysql数据库本身在维护,所以可以根据这个特性来生成【创建时间】和【更新时间】两个字段,且不需要代码来维护
CREATE TABLE myTable
(
id INT,
date_registered TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
date_validated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE myTable
(
id INT,
date_registered TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
date_validated TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间'
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
### 秒
select UNIX_TIMESTAMP()
### 毫秒
select current_timestamp(6)
MySQL支持时间、日期时间和时间戳值的小数秒,精度高达微秒(6位):要定义包含小数秒部分的列,请使用语法类型_name(fsp),其中类型_name是时间、日期时间或时间戳,而fsp是小数秒精度。
redis client十大好用的命令阿里云轻量应用服务器上使用Shadowsocks教程v2ray:统一的反审查平台Python版本管理神器Pyenv完全免费VPN:免费VPN服务的优势、使用方法和常见问题FRP内网穿透和V2Ray共存教程Clash怎么使用: 完整教程及常见问题解答微软分析工具 Clarity 安装教程Clash安装服务模式: 详细教程与常见问题解答Clash免费订阅节点2022:获取、使用教程及常见问题解答Clash手机版配置文件导入指南Clash拷贝失败:原因、解决方法和常见问题维基百科國 服 VPN教程Clash of Clans游戏教程:clash怎么设定NordVPN与Shadowsocks详解机场测速观察---忍者云2024年优质机场测评与推荐|稳定|性价比 | 2024年下半年优秀VPNV2RayNG 新手教程指南︱安卓翻墙插件白月光机场2024国庆节限时优惠码高速稳定 IPLC/IEPL 专线机场推荐:CyberGuard 机场怎么样?解锁Netfilx/Hbo/Disney+/Dazn等流媒体,提供跑不限时按量付费套餐