環境:
>select version();
> 5.7.16
問題:
在一表上有兩個欄位created_at
和updated_at
兩個欄位類型皆為timestamp
. created_at
的預設值為-00_TI
created_at 的預設值為
-00_TIMESTAMP0000MESTAMP 00 00:00:00,這時候問題就出現了,執行創建表的語句或報錯,下面是錯誤代碼:
Syntax error or access violation: 1067 Invalid default value for 'updated_at'
如果將updated_at 的預設值也改為
CURRENT_TIMESTAMP 那麼會順利執行,但是這就又出現一個問題,Mysql5.7以下的版本不支援一表中存在兩個預設值為
CURRENT_TIsql5.7以下的版本不支援一表中存在兩個預設值為CURRENT_TIsql5.7以下的版本不支援一表中存在兩個預設值為
CURRENT_TIsql5.7以下的版本不支援一表中存在兩個預設值為CURRENT_TIsql5.7以下的版本不支援一表中存在兩個預設值為
CURRENT_TIsql5.7以下的版本不支援一表中存在兩個預設值
欄位?
所以,請求諸位大神,該怎麼解決這個
的預設值問題?可以相容於Mysql高低版本。
🎜&^ - &^🎜滿天的星座2017-05-16 13:11:07
從這個update_at這個欄位的需求出發看這個問題,字面上理解這個欄位應該是用來表記錄的更新時間。
如果更新時間有預設值,但預設值並不是更新/新增記錄時插入當前資料庫時間的話(題主用0000-00-00 00:00:00),那麼使用非當前資料庫時間的值都使這個欄位的意義不存在(冗餘/錯誤的資料)。
對應資料庫中錯誤的數據,可以不用進行保存。
綜上所述,題主看下是否能不給update_at這個欄位預設值?