発生しているエラー
既存のテーブルにカラムを挿入しようとしたら、次のエラーが発生した。

エラーが発生している原因
SQLモードの NO_ZERO_DATE が有効になっている事。
NO_ZERO_DATEが有効になっていると、サーバーが0000-00-00を有効な日付として挿入を許可する。
ただ、他のカラムで更新日などを管理している場合、新規挿入するカラムの更新日として挿入される0000-00-00と更新日を管理するカラムのデフォルト値などが競合してしまうため、phpMyAdminがエラーとして警告を出している。
(自分はこう認識したが、正しいかどうかは自信がない…)
エラー解消法
自分はXAMPPからMySQLやphpMyAdminを利用しているため、その環境での解消法を記す。
-
XAMPPのコントロールパネルからMySQLのconfigボタンを押し、my.iniを開く。 -
my.iniの中にsql_mode=~という文字列があるため、その中にあるNO_ZERO_DATEを削除する。my.ini## UTF 8 Settings #init-connect=\'SET NAMES utf8\' #collation_server=utf8_unicode_ci #character_set_server=utf8 #skip-character-set-client-handshake #character_sets-dir="C:/xampp/mysql/share/charsets" sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION log_bin_trust_function_creators=1 -
XAMPPのコントロールパネルからMySQLを再起動。 -
追加したかったカラムを挿入できるか確認。