発生しているエラー
既存のテーブルにカラムを挿入しようとしたら、次のエラーが発生した。
エラーが発生している原因
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
を再起動。 -
追加したかったカラムを挿入できるか確認。