mysql查询数据库报错sql_mode_MySQL数据库的sql_mode
内容纲要
错误详情
插入或导入数据库时,如果时间字段的格式为 ‘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相关推荐
- mysql数据库报错1067_mysql数据库 1067
MySQL在windows系统中修改datadir路径后无法启动问题,报错1067 windows server2008下如何更改MySQL数据库的目录的帖子已经很多了,这里简单介绍一个步骤,如果不成 ...
- mysql存储过程执行报错1175_mysql 数据库 存储过程执行报错的解决办法
每次重启后,执行存储过程总会报错,异常如下: SQL state [HY000]; error code [1418]; This function has none of DETERMINISTIC ...
- mysql数据库报错1075_MySQL数据库之在MAC OS X上安装MYSQL
本文主要向大家介绍了MySQL数据库之在MAC OS X上安装MYSQL ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 我在网上找到了一篇文章,简直堪称神器. 刚开始用brew ...
- 安装完MySQL后启动报错_MySQL数据库之mysql编译安装完成后,启动时报错The server quit without updating PID file...
本文主要向大家介绍了MySQL数据库之mysql编译安装完成后,启动时报错The server quit without updating PID file ,通过具体的内容向大家展现,希望对大家学习 ...
- 迁移mysql数据库报错_数据库迁移失败报错
1.1.1 问题现象 在 配置外接数据库 时配置 MySQL 数据库,导入数据失败,页面前端报错:could not execute statement:查看%FineBI%/logs/fanruan ...
- mysql还原数据库报错_MySQL数据库还原
当数据库中的数据,遭到破坏时,可以通过备份好的数据文件进行还原 还原 是指还原数据库中的数据,然后,库是不能被还原的 备份文件,实际上就是由多个CREATE.INSERT和DROP语句组成,因此,只要 ...
- mysql导出入数据库报错_mysql数据库导出导入数据库的搜索结果-阿里云开发者社区...
mysql 数据库导入\导出(总结备忘) 数据库的基本导入\导出的命令 是 mysqldump 和 source 在linux下直接用命令行操作就可以 在windows下 一般情况下有两种方法一个也是 ...
- mysql 查询dual报错_MYSQL基础02(查询)
查询是很大的一块,所以这里我只会写mysql的特点,就我目前使用的情况,MYSQL对标准SQL是比较支持,如果是新手的话,建议去w3school 学习标准SQL. 1.DUAL DUAL是一个虚拟表, ...
- windows11安装SQL server数据库报错等待数据库引擎恢复句柄失败
官网:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 我的系统是win11的,一开始安装的是2019版本的SQL ser ...
最新文章
- android ListView包含Checkbox滑动时状态改变
- IDEA代码格式化快捷键(新)
- 云原生背景运维转型之 SRE 实践
- sqlserver 字符串转化数值函数_Excel常见函数用法(TEXT函数)
- symmetry methods for differential equations,exercise 1.4
- 教你如何使用for循环来做一些小图案
- LaTeX标题、目录及段落的编辑(清晰实例)
- 软件测试的错误优先级,软件测试典型错误
- 计算机操作系统第四版知识点总结(详细版一)
- 某酷kux文件转mp4方法
- 摄影用光、构图基础知识
- HTML 引用小图标
- 绩效考核的五大原则,你知道吗?
- java mediatype属性_Java MediaType.MULTIPART_FORM_DATA_TYPE属性代码示例
- numpy部份函数或命令用法(不定时更新)
- “贴吧之父”俞军20年的方法论:顶级与平庸的差距有多大?
- 两台小米手机如何实现远程控制
- 苹果开发者账号官方翻译篇-团队管理
- mos管的rc吸收电路计算_RCD吸收电路
- linux获取偶数行内容,linux命令(39):shell 打印偶数行,奇数行 ,行号
热门文章
- 唐门的竹林伪原创工具
- 一个15岁少年写的汇编代码
- adsl 路由器默认密码
- VC制作类似于IE4的酷工具条
- 监督学习 | SVM 之非线性支持向量机原理
- AE快速景深模糊插件:Rowbyte Fast Bokeh for Mac
- qaxobject控制word到某一行_太简单了!Excel信息导出为每页打印一行,且批量添加同一表头...
- clion中文乱码_CLion 遇到乱码的解决办法
- PHP当作客户端访问连接另外一个socket的方法
- php-cms,GitHub - lovelife10000/L-php-cms: 基于laravel框架开发的一款php CMS内容管理系统,前端采用angular、jquery技术...