作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我们正在将我们的应用程序从 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'
我知道可以禁用严格模式,但这不是我正在寻找的解决方案。奇怪的是,同一个查询对另一个表有效。
有人知道出了什么问题吗?
最佳答案
错误已经发生在您的查询的第一行。您正在尝试更改 event_start_date
列,但错误消息是针对 event_end_date
列的。您需要使用单个查询更改两列以避免此错误:
ALTER TABLE events CHANGE event_start_date event_start_date date DEFAULT NULL, CHANGE event_end_date event_end_date date DEFAULT NULL;
它可能适用于您的其他表,因为您只有一个类型为 date
的列。
关于MySQL 5.7 : Invalid default value for 'event_end_date' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54041481/
我们正在将我们的应用程序从 MySQL 5.5 迁移到 5.7。由于在严格模式下 MySQL 5.7 中的日期字段不再允许默认值 0000-00-00,我想将默认值更改为 NULL 。 相关字段定义如
我是一名优秀的程序员,十分优秀!