博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

原文: MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1-阿里云开发者社区 (aliyun.com)

简介: MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘FrozenTime‘ at row 1

问题:

用 navicat 导入数据时,报错:

[Err] 1292 - Incorrect datetime value: '0000-00-00 00:00:00' for column 'FrozenTime' at row 1

原因:

这是因为当前的 MySQL 不支持 datetime 为 0 的情况。

解决:

sql_mode : 定义了 MySQL 应支持的 SQL语法、数据校验 等,

这样可以更容易地在不同的环境中使用 MySQL。查看全局 sql_mode:

select @@global.sql_mode;

可以看到,NO_ZERO_DATE、NO_ZERO_IN_DATE,把这两个设置去掉。

修改全局sql_mode:

set @@global.sql_mode = 
'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

查看当前 sql_mode:

select @@sql_mode;

修改当前 sql_mode:

set @@sql_mode = 
'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

OK,问题解决。

一旦 MySQL 重启,就必须重新设置一次 全局 和 当前的 sql_mode。

修改sql_mode配置:

在 MySQL 配置文件 mysql.ini 中修改 sql_mode 配置,就不需要每次重启 MySQL 就得重新设置 sql_mode 了。

  • 关闭MySQL
net stop MySQL57
  • 修改MySQL配置, 在 my.ini 的 [mysqld] 下添加:
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
  • 启动MySQL
net start MySQL57

 END!

posted @ 2022-08-10 14:35  CHANG_09  阅读(1903)  评论(0)    收藏  举报