某張表格裏有2個TIMESTAMP類型,time1、time2;建表時time1默認NOT NULL ,time2默認NULL;
之後出現了問題:當只修改time2字段,不操作time1時;time1隨着更新成了修改time2的時間;
之後使用DataGrip---》DDL查看該表的sql語句發現:之前建表時,time1字段後面默認加上了
ON UPDATE CURRENT_TIMESTAMP
導致了每次修改字段時time1都會自動更新;
原因是:mysql 的 timestamp字段的默認值,如果想爲NULL,必須設置爲 0000-00-00 00:00:00,否者都會自動變爲 CURRENT_TIMESTAMP
解決的辦法是建表時給它加上default '0000-00-00 00:00:00';
這樣TIMESTAMP類型的字段就不會變成ON UPDATE CURRENT_TIMESTAMP;
問題解決;