explicit_defaults_for_timestamp という WARNING

久々にMySQLをインストールしてみたら、起動時に

[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

なんてWARNINGが出てきた。
なんのことやら?と思ったら、
「TIMESTAMP データ型は非標準的な方式である」という部分が
「MySQL 5.6.6 以降では非推奨」ということになったらしい。

詳細は「2.11.1.3. MySQL 5.5 から 5.6 へのアップグレード」の下の方に。

いままでは、なんの指定もしなくてもTIMESTAMPカラムには
NOT NULL, DEFAULT CURRENT_TIMESTAMP, ON UPDATE CURRENT_TIMESTAMP 属性が自動的に付けられてた。

これからは、このへんの属性を自動で付けるけど、「非推奨WARNING」をしつこく出すことにする!

ということらしい┐( -“-)┌…

これを出したくなければ、
「explicit_defaults_for_timestamp」を「ON」にしましょう!
その代わり、
これから作るTIMESTAMPは「明示的に NOT NULL 指定」をしない限り「NOT NULL」じゃなくなる。
よってTIMESTAMPについて何も指定していなかったSQLで新しいテーブルに書き込むと現在時刻は自動的に入らず、「NULL」が入ります!
ってことみたい、よ。

とりあえず、このWARNINGを消すには「ON」にするしかないねぇ。

書き方からして、今後のアップデートで「DEFAULT = ON」にしたいのは明白っぽいもんねぇ。
SQL書く側が気をつけるしかないねぇ。