安裝 MySQL 5.6 時出現警告:
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option...
在 my.cnf [mysqld] 節點添加:
explicit_defaults_for_timestamp=true
重啟後警告消失,行為標準化:
explicit_defaults_for_timestamp = 「顯式指定 TIMESTAMP 列的默認值」。關閉隱式魔法行為,強制開發者在建表時明確聲明意圖,避免升級兼容性陷阱。
所有 5.6+ 生產環境建議開啟此參數,並在建表時顯式定義時間戳列行為:
CREATE TABLE t ( created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP );