sql_mode详解

文章目录

  • 一、sql_mode作用
  • 二、查询sql_mode
  • 三、mysql8默认的mode配置(6个默认配置)
  • 四、常见mode详细解释
    • mysql8默认配置了的mode(6个)
    • 需要自己配置的mode(4个)
  • 五、设置sql_mode(一旦设置了,就不会再用默认配置的mode规则)
    • 命令行设置(两个都可以),重启失效
    • 配置文件设置
  • 参考文档

一、sql_mode作用

  • sql_mode是一组语法校验规则

二、查询sql_mode

  • 执行sql查询
select @@GLOBAL.sql_mode
select @@SESSION.sql_mode
  • 查看my.conf配置文件(文件夹路径为)
C:\ProgramData\MySQL\MySQL Server 8.0

在这里插入图片描述

三、mysql8默认的mode配置(6个默认配置)

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

四、常见mode详细解释

mysql8默认配置了的mode(6个)

  • ONLY_FULL_GROUP_BY:对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中
  • STRICT_TRANS_TABLES:如果一个值不能插入到一个事务中,则中断当前的操作,对非事务表不做限制
  • NO_ZERO_IN_DATE:不允许日期和月份为零
  • NO_ZERO_DATE:mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告
  • ERROR_FOR_DIVISION_BY_ZERO:在insert或update过程中,如果数据被零除,则产生错误而非警告。如果未给出该模式,那么数据被零除时Mysql返回NULL
  • NO_ENGINE_SUBSTITUTION:如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常

需要自己配置的mode(4个)

  • NO_AUTO_VALUE_ON_ZERO:该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。
  • NO_AUTO_CREATE_USER:禁止GRANT创建密码为空的用户
  • PIPES_AS_CONCAT:将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样是,也和字符串的拼接函数Concat想类似
  • ANSI_QUOTES:不能用双引号来引用字符串,因为它被解释为识别符

五、设置sql_mode(一旦设置了,就不会再用默认配置的mode规则)

命令行设置(两个都可以),重启失效

SET GLOBAL SET GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
SET SESSION sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

配置文件设置

  • 加下面这行,按需添加mode(作者只是举例)
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

参考文档

  • sql_mode详解(超详细,亲测有效)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/102127.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为云使用脚本初始化Linux数据盘

初始化新挂载的磁盘 登录云服务器,执行以下命令获取自动初始化磁盘脚本。 wget https://ecs-instance-driver.obs.cn-north-1.myhuaweicloud.com/datadisk/LinuxVMDataDiskAutoInitialize.sh 说明: 若回显异常,请检查云服务器是否绑定弹性公…

Android逆向学习(四)app修改smali函数跳过弹窗广告,等待广告,更新提醒

Android逆向学习(四)app修改smali函数跳过弹窗广告,等待广告,更新提醒 一、写在前面 这是吾爱破解课程的第三个练习,我在写这篇博客时遇到了vscode插件bug,已经想办法联系原作者了,希望能够尽…

明确企业知识库及知识平台搭建的重要性,开启企业成长之路

在企业运营过程中产生经营数据、管理规范、文化、资料、文档等大量数据,这些数据是花费了大量时间和金钱成本所积累的数据,如果不加以整理总结会造成巨大的浪费。 想要形成结构化、易操作、易利用、易储存、可传承的知识集群,是使用HelpLook在…

考研资料共享系统的设计说明

考研资料共享系统的设计说明 设计意义及目的模块划分技术难点写项目中遇到的问题该项目的后端模块介绍该项目的前端模块介绍运行演示Gitee链接 设计意义及目的 为了方便找资料,了解考研形式;另一方面是锻炼编写系统的能力 模块划分 主要划分为&#xff1…

Druid LogFilter输出可执行的SQL

配置 测试代码: DruidDataSource dataSource new DruidDataSource(); dataSource.setUrl("xxx"); dataSource.setUsername("xxx"); dataSource.setPassword("xxx"); dataSource.setFilters("slf4j"); dataSource.setVal…

Java“牵手”淘宝商品列表数据,关键词搜索淘宝商品数据接口,淘宝API申请指南

淘宝商城是一个网上购物平台,售卖各类商品,包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取淘宝商品列表和商品详情页面数据,您可以通过开放平台的接口或者直接访问淘宝商城的网页来获取商品详情信息。以下是两种常用方法的介绍&…

大模型技术实践(三)|用LangChain和Llama 2打造心灵疗愈机器人

上期文章我们实现了Llama 2-chat-7B模型的云端部署和推理,本期文章我们将用“LangChainLlama 2”的架构打造一个定制化的心灵疗愈机器人。有相关知识背景的读者可以直接阅读「实战」部分。 01 背景 1.1 微调 vs. 知识库 由于大模型在垂直行业领域的问答效果仍有待提…

Revit SDK:Selections 选择

前言 Revit 作为一款成熟的商业软件,它将自己的UI选择功能也通过 API 暴露出来。通过 API 可以按照特定的过滤规则来选择相应的元素,能力和UI基本上是等价的。这个 SDK 用四个例子展示了 API 的能力,内容如下。 内容 PickforDeletion 核心…

A133P EC200M模块调试

Linux USB驱动框架: USB 是一种分层总线结构。USB 设备与主机之间的数据传输由 USB 控制器控制。Linux USB 驱动程序架构如下图所示。Linux USB 主机驱动包括三部分:USB 主机控制器驱动、USB 核心和 USB 设备驱动。 模块加载 USB 转串口 option 驱动程序…

记录docker 部署nessus

1、开启容器 docker run -itd --nameramisec_nessus -p 8834:8834 ramisec/nessus 2、登录 :注意是https https://ip8843 3、修改admin密码 #进入容器 docker exec -it ramisec_nessus /bin/bash#列出用户名 /opt/nessus/sbin/nessuscli lsuser#修改密码&a…

JAVA设计模式第十讲:SPI - 业务差异解决方案

JAVA设计模式第十讲:SPI - 业务差异解决方案 我们需要在不修改源代码的情况下,动态为程序提供一系列额外的特性。首先想到的是Spring的AOP技术来构建应用插件,但是在Java自带的插件中,就有完整的实现。SPI(Service Pro…

echarts饼图label自定义样式

生成的options {"tooltip": {"trigger": "item","axisPointer": {"type": "shadow"},"backgroundColor": "rgba(9, 24, 48, 0.5)","borderColor": "rgba(255,255,255,0.4)&q…