久々に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書く側が気をつけるしかないねぇ。