症状
nullを許可していないカラムにnullを許可したい。
で、以下のエラー
流したSQL
ALTER TABLE users MODIFY email varchar(255);
エラーメッセージ
Error Code: 1067. Invalid default value for 'created_at'
なんでwwwできないwwwwwwmywwwwsqlさんwwwww俺たちwwww
友達wwwwだろwwww?wwwwwww
前提
| Field | Type | Null | Key | Default | Extra |
|:----------------------+------------------+------+-----+---------------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| email | varchar(255) | NO | UNI | NULL | |
| password | varchar(60) | NO | | NULL | |
| remember_token | varchar(100) | YES | | NULL | |
| created_at | timestamp | NO | | 0000-00-00 00:00:00 | |
| updated_at | timestamp | NO | | 0000-00-00 00:00:00 | |
| confirmation_token | varchar(255) | YES | | NULL | |
| confirmed_at | timestamp | YES | | NULL | |
| confirmation_sent_at | timestamp | YES | | NULL | |
で、こうやったら治った
SET sql_mode = '';
MySQLにはSTRICT_ALL_TABLESなるsqlモードがあり、それが原因らしい
参考
【MySQL】MySQL5.6ではsql_modeがSTRICT_TRANS_TABLESになる