我们正在将应用程序从MySQL 5.5迁移到5.7.由于在严格模式下MySQL 5.7中的日期字段不再允许使用默认值0000-00-00,因此我想将默认值更改为NULL.
有关字段定义如下:
+------------------+----------------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+----------------------+------+-----+------------+----------------+
| event_start_date | date | YES | | 0000-00-00 | |
| event_end_date | date | YES | | 0000-00-00 | |
+------------------+----------------------+------+-----+------------+----------------+
当我尝试执行以下ALTER查询时:
ALTER TABLE events CHANGE event_start_date event_start_date date DEFAULT NULL;
ALTER TABLE events CHANGE event_end_date event_end_date date DEFAULT NULL;
我收到以下错误:
Invalid default value for 'event_end_date'
我知道可以禁用严格模式,但这不是我正在寻找的解决方案.奇怪的是,同一查询为另一个表工作.
任何人都知道出什么问题了吗?