TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details)
时间: 2023-08-17 22:14:51 浏览: 251
MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated错误
5星 · 资源好评率100%
这个警告信息是由于 MySQL 版本升级导致的,从 MySQL 5.6.6 版本开始,默认情况下不再支持将字段的默认值设置为 `TIMESTAMP` 类型而不指定具体的默认值,因此会强制使用 `--explicit_defaults_for_timestamp` 参数来启用显式时间戳默认值。
解决这个问题的方法有两种:
1. 修改 SQL 语句,显式指定时间戳字段的默认值,例如:
```sql
CREATE TABLE MyTable (
id INT NOT NULL AUTO_INCREMENT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
```
2. 在 MySQL 配置文件中添加 `explicit_defaults_for_timestamp` 参数:
```ini
[mysqld]
explicit_defaults_for_timestamp = 1
```
然后重新启动 MySQL 服务即可。
需要注意的是,使用第二种方法可能会影响到现有的应用程序,因为它可能会导致一些代码需要更新以显式地指定时间戳字段的默认值。因此,在使用这种方法之前,您需要测试您的应用程序,以确保它们能够与新的时间戳默认值行为兼容。
阅读全文