MyBatis更新數據時,時間字段的值被自動更新


問題描述

先說結論:設計表的時候,如果時間字段沒寫默認值,MySQL會自己加上“根據當前時間戳自動更新”,我們要做的就是把它去掉。

這是原始數據

然后去做更新數據,更新的字段不是時間字段

再來看一下數據庫,發現時間字段變了

通過Navicat看了下表設計,這里勾上了“根據當前時間戳自動更新”

我設計表的時候沒這么設計

導出這張表,對比一下SQL,發現多了DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0)

解決方案

  • 如果是建表時,可以通過加默認值解決這個問題。
  • 如果是已建表,可以通過Navicat設計表,去掉“根據當前時間戳自動更新”的勾。或者使用SQL語句更改。
alter table tableName change filedName fieldName timestamp not null default current_timestamp;

以前面的表為例子:

alter table user change updateTime updateTime timestamp not null default '2022-02-04 13:36:00';


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM