MySQL 自动设置创建时间和更新时间
MySQL 自动设置创建时间和更新时间,表结构需要如何定义,MySQL版本最低为多少
在MySQL中自动设置创建时间和更新时间,可以通过以下方式实现:
表结构定义
对于MySQL 5.6.5及以上版本,可以使用以下表结构定义:
CREATE TABLE your_table_name (
id INT AUTO_INCREMENT PRIMARY KEY,
data VARCHAR(255),
create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
);
• create_time字段会在插入新记录时自动设置为当前时间戳。
• update_time字段会在更新记录时自动更新为当前时间戳。
对于MySQL 5.6.5以下版本,由于存在限制(每个表只能有一个TIMESTAMP字段同时启用DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP),通常需要使用触发器来实现。
MySQL版本要求
• MySQL 5.6.5及以上版本:支持在多个TIMESTAMP字段上同时使用DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP。
• MySQL 5.6.5以下版本:每个表只能有一个TIMESTAMP字段同时启用DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP。
修改现有表
如果需要为已有的表添加自动设置时间的功能,可以使用以下SQL语句:
ALTER TABLE your_table_name
ADD COLUMN create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
ADD COLUMN update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间';
通过以上方式,可以在MySQL中实现创建时间和更新时间的自动设置。
JPA 实体对象应如何设置
@Column(name = "create_time", insertable = false, updatable = false)
@Column(name = "update_time", insertable = false, updatable = false)
创建时间 @Column注解 设置 insertable = false 和 updatable = false
含义:JPA 自动生成insert/update的sql时忽略该字段
更新时间 @Column注解 设置 insertable = false 和 updatable = false
含义:JPA 自动生成update/update的sql 时忽略该字段
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

浙公网安备 33010602011771号