問題描述
先說結論:設計表的時候,如果時間字段沒寫默認值,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';
