ALTER TABLE logistics_trajectory MODIFY update_date VARCHAR(32) DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;执行报错Invalid default value for 'update_date'
时间: 2024-03-23 13:38:03 浏览: 146
MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated错误
这个错误通常是因为 `update_date` 字段的默认值设置不正确导致的,可以按照以下步骤进行排查:
1. 确认 MySQL 版本是否支持在 `VARCHAR` 类型的字段上使用 `CURRENT_TIMESTAMP` 默认值,如果 MySQL 版本太低可能不支持该特性。
2. 确认 `update_date` 字段的数据类型是否为 `VARCHAR`,如果不是,请将数据类型修改为 `DATETIME` 或 `TIMESTAMP`。
3. 确认 `update_date` 字段是否已经存在默认值,如果存在默认值,需要先将默认值删除再执行修改语句,如下所示:
```
ALTER TABLE logistics_trajectory MODIFY update_date VARCHAR(32) DEFAULT NULL;
ALTER TABLE logistics_trajectory MODIFY update_date VARCHAR(32) DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
```
4. 如果以上步骤都没有解决问题,可以尝试将 `update_date` 字段的默认值修改为一个常量值,如下所示:
```
ALTER TABLE logistics_trajectory MODIFY update_date VARCHAR(32) DEFAULT '1970-01-01 00:00:00';
ALTER TABLE logistics_trajectory MODIFY update_date VARCHAR(32) DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
```
以上是常见的解决方法,如果还是无法解决问题,请提供更多的错误信息和相关表结构信息,方便进一步排查。
阅读全文