内容纲要

错误详情

插入或导入数据库时,如果时间字段的格式为 ‘0’ ,插入时报错:

ERROR 1292 (22007): Incorrect datetime value: '0' for column 'xxx' at row 1

使用GROUP BY语句报错

MySQL [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause

原因

以上错误都是由于sql_mode设置了严格模式,所以插入失败。

sql_mode简而言之就是:它定义了你MySQL应该支持的sql语法,对数据的校验等等。

在生产环境中强烈建议将这个值设置为严格模式,这样有些问题可以在数据库的设计和开发阶段就能实现,而如果在生产环境下运行数据库后发现这类问题,那么修改的代价将变得十分巨大。此外正确地设置sql_mode还可以做一些约束(constraint)检查的工作。

5.6和5.7的默认设置

# MySQL 5.6 Default SQL_MODE;

mysql> select @@sql_mode;

+--------------------------------------------+

| @@sql_mode |

+--------------------------------------------+

| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |

+--------------------------------------------+

1 row in set (0.00 sec)

# MySQL 5.7 Default SQL_MODE;

mysql> select @@sql_mode;

+-------------------------------------------------------------------------------------------------------------------------------------------+

| @@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,NO_ENGINE_SUBSTITUTION |

+-------------------------------------------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

sql_mode设置

命令行&SQL

set sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

my.cnf

# 在my.cnf添加如下配置

[mysqld]

sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

sql_mode常用值

ONLY_FULL_GROUP_BY

对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中。

在严格模式下,不要让GROUP BY部分中的查询指向未选择的列,否则报错。

NO_AUTO_VALUE_ON_ZERO

该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户 希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。

STRICT_TRANS_TABLES

在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制

NO_ZERO_IN_DATE

在严格模式下,不允许日期和月份为’0′

NO_ZERO_DATE

设置该值,mysql数据库不允许插入’0000-00-00 00:00:00’,插入零日期会抛出错误而不是警告

ERROR_FOR_DIVISION_BY_ZERO

在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时MySQL返回NULL

NO_AUTO_CREATE_USER

禁止GRANT创建密码为空的用户

NO_ENGINE_SUBSTITUTION

如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常

PIPES_AS_CONCAT

将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似

ANSI_QUOTES

启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符

mysql查询数据库报错sql_mode_MySQL数据库的sql_mode相关推荐

  1. mysql数据库报错1067_mysql数据库 1067

    MySQL在windows系统中修改datadir路径后无法启动问题,报错1067 windows server2008下如何更改MySQL数据库的目录的帖子已经很多了,这里简单介绍一个步骤,如果不成 ...

  2. mysql存储过程执行报错1175_mysql 数据库 存储过程执行报错的解决办法

    每次重启后,执行存储过程总会报错,异常如下: SQL state [HY000]; error code [1418]; This function has none of DETERMINISTIC ...

  3. mysql数据库报错1075_MySQL数据库之在MAC OS X上安装MYSQL

    本文主要向大家介绍了MySQL数据库之在MAC OS X上安装MYSQL ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 我在网上找到了一篇文章,简直堪称神器. 刚开始用brew ...

  4. 安装完MySQL后启动报错_MySQL数据库之mysql编译安装完成后,启动时报错The server quit without updating PID file...

    本文主要向大家介绍了MySQL数据库之mysql编译安装完成后,启动时报错The server quit without updating PID file ,通过具体的内容向大家展现,希望对大家学习 ...

  5. 迁移mysql数据库报错_数据库迁移失败报错

    1.1.1 问题现象 在 配置外接数据库 时配置 MySQL 数据库,导入数据失败,页面前端报错:could not execute statement:查看%FineBI%/logs/fanruan ...

  6. mysql还原数据库报错_MySQL数据库还原

    当数据库中的数据,遭到破坏时,可以通过备份好的数据文件进行还原 还原 是指还原数据库中的数据,然后,库是不能被还原的 备份文件,实际上就是由多个CREATE.INSERT和DROP语句组成,因此,只要 ...

  7. mysql导出入数据库报错_mysql数据库导出导入数据库的搜索结果-阿里云开发者社区...

    mysql 数据库导入\导出(总结备忘) 数据库的基本导入\导出的命令 是 mysqldump 和 source 在linux下直接用命令行操作就可以 在windows下 一般情况下有两种方法一个也是 ...

  8. mysql 查询dual报错_MYSQL基础02(查询)

    查询是很大的一块,所以这里我只会写mysql的特点,就我目前使用的情况,MYSQL对标准SQL是比较支持,如果是新手的话,建议去w3school 学习标准SQL. 1.DUAL DUAL是一个虚拟表, ...

  9. windows11安装SQL server数据库报错等待数据库引擎恢复句柄失败

    官网:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 我的系统是win11的,一开始安装的是2019版本的SQL ser ...

最新文章

  1. android ListView包含Checkbox滑动时状态改变
  2. IDEA代码格式化快捷键(新)
  3. 云原生背景运维转型之 SRE 实践
  4. sqlserver 字符串转化数值函数_Excel常见函数用法(TEXT函数)
  5. symmetry methods for differential equations,exercise 1.4
  6. 教你如何使用for循环来做一些小图案
  7. LaTeX标题、目录及段落的编辑(清晰实例)
  8. 软件测试的错误优先级,软件测试典型错误
  9. 计算机操作系统第四版知识点总结(详细版一)
  10. 某酷kux文件转mp4方法
  11. 摄影用光、构图基础知识
  12. HTML 引用小图标
  13. 绩效考核的五大原则,你知道吗?
  14. java mediatype属性_Java MediaType.MULTIPART_FORM_DATA_TYPE属性代码示例
  15. numpy部份函数或命令用法(不定时更新)
  16. “贴吧之父”俞军20年的方法论:顶级与平庸的差距有多大?
  17. 两台小米手机如何实现远程控制
  18. 苹果开发者账号官方翻译篇-团队管理
  19. mos管的rc吸收电路计算_RCD吸收电路
  20. linux获取偶数行内容,linux命令(39):shell 打印偶数行,奇数行 ,行号

热门文章

  1. 唐门的竹林伪原创工具
  2. 一个15岁少年写的汇编代码
  3. adsl 路由器默认密码
  4. VC制作类似于IE4的酷工具条
  5. 监督学习 | SVM 之非线性支持向量机原理
  6. AE快速景深模糊插件:Rowbyte Fast Bokeh for Mac
  7. qaxobject控制word到某一行_太简单了!Excel信息导出为每页打印一行,且批量添加同一表头...
  8. clion中文乱码_CLion 遇到乱码的解决办法
  9. PHP当作客户端访问连接另外一个socket的方法
  10. php-cms,GitHub - lovelife10000/L-php-cms: 基于laravel框架开发的一款php CMS内容管理系统,前端采用angular、jquery技术...