互联网技术社区|福缘小草|程序员技术博客
🏠首页
  • 开发必备
  • Java
  • Spring Boot
  • MyBatis
  • C#
  • 架构
  • 算法
  • Vue
  • JavaScript
  • HTML
  • MySQL
  • Oracle
  • SQL Server
  • PostgreSQL
  • Redis
  • MongoDB
  • ElasticSearch
  • influxDB
  • ClickHouse
  • Linux
  • Docker
  • K8s
  • 消息队列
  • Shell
  • Git
  • Nginx
  • IDEA
  • Windows
  • 安卓
  • 在线工具
  • 实用技巧
  • 开源项目
  • 好文
  • 资源
  • 网站
  • 导航
💖关于
  • 分类
  • 标签
  • 归档

baohua.yin

不会填坑的程序员不是一个好程序猿!
🏠首页
  • 开发必备
  • Java
  • Spring Boot
  • MyBatis
  • C#
  • 架构
  • 算法
  • Vue
  • JavaScript
  • HTML
  • MySQL
  • Oracle
  • SQL Server
  • PostgreSQL
  • Redis
  • MongoDB
  • ElasticSearch
  • influxDB
  • ClickHouse
  • Linux
  • Docker
  • K8s
  • 消息队列
  • Shell
  • Git
  • Nginx
  • IDEA
  • Windows
  • 安卓
  • 在线工具
  • 实用技巧
  • 开源项目
  • 好文
  • 资源
  • 网站
  • 导航
💖关于
  • 分类
  • 标签
  • 归档
  • MySQL中延时或定时操作
  • select count查找是否存在效率问题
  • 批量清空数据库所有表数据
  • 字段类型date, datetime设置0000-00-00默认值报错
  • MySQL查询语句优化方法
  • MySQL查询 count(1) 比 count(*) 效率对比
  • Mysql中的COALESCE函数
  • MySQL字符串连接函数 ,分组连接函数
  • MySQL
baohua.yin
2023-03-03

字段类型date, datetime设置0000-00-00默认值报错

现象:用sql创建表时,date, datetime类型设置默认值"0000-00-00",出现异常:Invalid default value for 'time',MySQL版本5.7

原因: 查看当前的sql_mode配置:

select @@sql_mode;

结果如下:

ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE,  
ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, and NO_ENGINE_SUBSTITUTION  

其中NO_ZERO_IN_DATE, NO_ZERO_DATE两个选项禁止了0000这样的日期和时间。因此在mysql的配置文件中,重新设置sql_mode,去掉这两项就可以了。

修改my.cnf文件,在[mysqld]中添加

sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 

修改完成一定重启MySQL

service mysqld restart
上次更新: 2023/03/03, 13:18:42
批量清空数据库所有表数据
MySQL查询语句优化方法

← 批量清空数据库所有表数据 MySQL查询语句优化方法→

最近更新
01
如何进行科学上网
05-31
02
分享(一个外地女孩,死在了我出租的公寓)
08-18
03
温家宝总理—《我的母亲》
06-13
更多文章>
Copyright © 2019-2025 1024fuli.com | 本站所有资源收集整理于网络,如有侵权请发邮件联系删除。| 粤ICP备18082936号-1 | 由又拍云提供CDN支持
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式