日付に0をセットできない
以下のような見慣れないエラーに遭遇して、しばし苦戦してしまいました。MySQLでは、日付の各フィールドに0を代入して「不明」の状態を表すことが出来ますが、それが許可されない場面もこのように存在します。
Incorrect datetime value: '0000-00-00 00:00:00' for column 'foo' at row 1
SQL_MODEという変数の値でこれを見分けることができます。
mysql> show variables where variable_name like 'sql_mode';
上記の結果に「STRICT_ALL_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE」などという値が設定されていると0値が認められなくなるようです(STRICT..の詳細は未調査)。
更新日付など、「不明」状態を許可したくない場合には有効な設定かもしれませんが、データベース全体に影響してしまう設定なので変更時は注意が必要です。列単位で指定する方法は無いのでしょうか?
参考URL
この記事は役に立ちましたか?
- EnglishWorm.com
- SinglesFan.com
- LmLab.net
- サイトマップ
- 運営者について