向mysql表中插入/更新数据时自动添加创建时间/更新时间

本文介绍两种优化MySQL数据库中时间字段的方法:一是通过修改字段类型为TIMESTAMP并设置默认值为CURRENT_TIMESTAMP实现自动添加及更新时间;二是配置生成策略进一步优化。文章通过示例展示了如何在插入和更新数据时自动维护创建时间和更新时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

处理方式一:修改数据库字段类型

测试插入数据:

测试更新数据:

处理方式二:配置生成策略


[MySQL版本] 8.x

处理方式一:修改数据库字段类型

自动添加创建时间:

将字段类型设置为TIMESTAMP,非空、默认值为:CURRENT_TIMESTAMP

ALTER TABLE t_type MODIFY COLUMN create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL COMMENT '创建时间';

自动更新更新时间:

将字段类型设置为TIMESTAMP,非空、默认值为:

CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

ALTER TABLE t_type MODIFY COLUMN update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL COMMENT '更新时间';

测试插入数据:

    @Autowired
    private ITypeMapper typeMapper;

    @Test
    public void testInsertCurrentTime(){
        IType type = new IType();
        type.setName("散文");
        type.setUserId(81);
        typeMapper.insertType(type);
    }

 执行SQL:

==>  Preparing: INSERT INTO t_type (type_name, user_id) VALUES(?,?);
==> Parameters: 散文(String), 81(Integer)
<==    Updates: 1

数据库中记录:

 插入数据时自动添加了创建时间和更新时间;

测试更新数据:

    @Test
    public void testInsertCurrentTime(){
        IType type = new IType();
        type.setName("小说");
        type.setUserId(81);
        typeMapper.updateType(type);
    }

执行SQL:

==>  Preparing: UPDATE t_type SET type_name=? WHERE user_id=?;
==> Parameters: 小说(String), 81(Integer)
<==    Updates: 1

数据库中记录:

处理方式二:配置生成策略

。。。。更新ing

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值