現象
1 | updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP` |
原因
対応
MySqlのバージョンを上げる
TIMESTAMP型に作り変える
1 | updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
Your Idea > Build The Future
MySqlでDDL発行しようとしたら構文エラーでテーブル生成に失敗した。
1 | updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP` |
MySqlのバージョンが5.6.5以前のため、DATETIME型がCURRENT_TIMESTAMPに対応していなかった。
公式ドキュメントにも記述あり。
https://dev.mysql.com/doc/refman/5.6/ja/timestamp-initialization.html
業務で使用するシステムの場合、対応は非常に困難。
※古いシステムを改修し続けている場合、良くある。
1 | updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
公式ドキュメントを参照/確認の上、アプリ側の処理に影響がなければ問題なし。
https://dev.mysql.com/doc/refman/5.6/ja/datetime.html