【BUG记录】记录在使用Navicat建表时遇到的一个坑

博客讲述了在数据库设计中,不建议为字段如create_time和update_time自动设置当前时间戳的原因。当这个选项被勾选时,即使未明确更新这些时间字段,它们也会在任何UPDATE操作后自动更新,导致可能不符合预期的数据记录。例如,简单的UPDATE语句会意外改变update_time,这可能对数据追踪和审计带来问题。
摘要由CSDN通过智能技术生成

BUG引出

之前在公司大部分时间都是在设计数据库,我设计的每张表都会添加create_timeupdate_time这两个datetime类型的字段,在Navicat里每个字段都手贱勾上了根据当前时间戳更新的这个选项
在这里插入图片描述

BUG描述

为什么不建议勾上这个选项呢?勾上这个之后,即使你UPDATE一行数据,没有SET update_time字段,它也会使用当前时间去填充
什么意思呢?比如:

-- 这里我并没有给update_time字段设置now()
UPDATE mytable SET name = '张三'
WHERE id = 1;

经过上面操作你会发现,update_time字段竟然神奇地更新为当前时间!
看下面的图片,我receipt_time、create_time、update_time字段都勾上了根据当前时间戳更新,然后三个字段都自动填充了当前时间
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值