sql_mode详解

news2024/11/19 0:47:54

文章目录

  • 一、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.coloradmin.cn/o/983790.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

宠物用品做谷歌推广的三种形式

今天,米贸搜谷歌推广来跟大家讲讲宠物用品做谷歌推广的三种形式! 本文中所提到的三种谷歌推广形式不仅仅适用于宠物用品行业的推广,也同样适用于更多的行业做好谷歌推广哟,如果有别的行业想要知道谷歌推广的三种推广形式&#xff…

使用Cmake编译项目从入门到精通

文章目录 1、安装2、使用CMake生成makefile2.1、项目结构介绍2.2、编写CMakeLists.txt文件2.3、优化写法12.4、给可执行程序设置路径2.5、指定头文件目录2.6、制作库以及使用 3、使用练习 cmake 的特点主要有: 1,开放源代码,使⽤类BSD 许可发…

网络技术二十一:ACL包过滤

ACL包过滤 ACL 定义 访问控制列表 用于数据流的匹配和筛选 常见功能 访问控制:ACLPacket-filter 路由控制:ACLRoute-policy 流量控制:ACLQOS 引入 ACL (Access Control List,访问控制列表)是用来实现数据包识别功能的 ACL可…

知名设计师推荐:2023年Pantone年度年度色彩用法

绘画巨头Pantone已宣布他们2023年的年度色彩。它是Viva品红,一种如此大胆和充满活力的色彩,我们一想到就兴奋不已。 Viva品红:Pantone Color Institute 2023年的年度色彩是明亮、温暖和乐观的。它也是相关的和不可避免的;在经历了…

浙大陈越何钦铭数据结构08-图7 公路村村通【循环和最小堆版】

题目 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。 输入格式: 输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N)…

.netcore对传输类设置区分大小

.Net Core中内置了对Json的转化与解析 可将PropertyNameCaseInsensitive false 设置为区分大小写。

socket的使用 | 服务器与客户端之间传送数据

服务器端代码: import java.io.*; import java.net.ServerSocket; import java.net.Socket;public class theServer {public static void main(String[] args) throws IOException {ServerSocket serverSocket new ServerSocket(9999); // 该行代码作用&#xff1…

IGES在线查看与转换

IGES 格式最初由美国空军开发并于 1980 年发布。该格式是集成计算机辅助制造 (ICAM) 项目的产品,该项目旨在通过集成操作来降低制造成本。 IGES 文件旨在允许航空航天相关设计在不同平台上传输,同时将数据丢失降至最低。 在 IGES 格式出现之前,不同公司创建的 CAD 和计算机…

PPT怎么转换为PDF格式,收藏这两个在线工具。

PPT是一种常用的演示文稿格式,它可以包含丰富的动画效果和超链接,让你的内容更加生动和有趣。但是,如果你想将PPT分享给别人,或者在不同的设备上查看,你可能会遇到一些问题,比如: PPT文件太大&a…

按照xml文件和txt文件名,将对应名字的图象文件复制

按照xml文件和txt文件名,将对应名字的图象文件复制 需求分析解决方案 需求分析 就是已经标注了xml和txt文件,需要将其对应的图象文件挑选出来 解决方案 # 按照xml文件删除对应的图片 # coding: utf-8 from PIL import Image, ImageDraw, ImageFont imp…

【多线程】线程安全与线程同步

线程安全与线程同步 1.什么是线程安全问题? 多个线程同时操作同一个共享资源的时候,可能会出现业务安全问题 取钱的线程安全问题场景: 两个人他们有一个共同的账户,余额是10万元,如果两个人同时来取钱,…

国内某头部理财服务提供商基于白鲸调度系统建立统一调度和监控运维

导读:国内某头部理财服务提供商成立于 2019 年,是股份制银行中首批获准筹建、首家获准开业、首家成立的银行理财子公司。自 2004 年推出国内首支人民币理财产品以来,通过投资模式的不断创新和投资管理能力的持续提升,引领国内银行…

Vue2项目练手——通用后台管理项目第七节

Vue2项目练手——通用后台管理项目 用户管理分页使用的组件Users.vuemock.js 关键字搜索区Users.vue 权限管理登录页面样式修改Login.vue 登录权限使用token对用户鉴,使用cookie对当前信息保存(类似localstorage)Login.vuerouter/index.js 登…

go基础08-map的内部实现

和切片相比,map类型的内部实现要复杂得多。Go运行时使用一张哈希表来实现抽象的map类型。运行时实现了map操作的所有功能,包括查找、插入、删除、遍历等。在编译阶段,Go编译器会将语法层面的map操作重写成运行时对应的函数调用。 下面是大致的…

07-垃圾收集算法详解

上一篇:06-JVM对象内存回收机制深度剖析 1.分代收集理论 当前虚拟机的垃圾收集都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代,这样我们就可以根据各…

【LeetCode-中等题】17. 电话号码的字母组合

文章目录 题目方法一:递归回溯 题目 方法一:递归回溯 参考讲解:还得用回溯算法!| LeetCode:17.电话号码的字母组合 首先可以画出树图: 先将数字对应的字符集合 加入到一个map集合 这里需要一个index来控…

【vue2第十七章】VueRouter 编程式导航跳转传参(点击按钮跳转路由和如何传递参数)

如何在js进行跳转路由 在一些需求中,我们需要不用点击a标签或者router-link,但是也要实现路由跳转,比如登陆,点击按钮搜索跳转。那么这种情况如何进行跳转呢? 直接再按钮绑定的方法中写this.$router.push(路由路径)即…

软件兼容性测试怎么做?对软件产品起到什么作用?

软件兼容性测试是一项重要的软件测试活动,它可以确保在不同操作系统、硬件配置和软件环境下,软件能够正常运行,并与其他相关软件和系统进行正确的互动。 一、软件兼容性的测试方法 1、操作系统测试:测试软件在不同操作系统上的兼…

linux常用命令及解释大全(二)

目录 前言 一、文件的权限 二、文件的特殊属性 三、打包和压缩文件 四、查看文件内容 五、文本处理 5.1 grep 5.2 sed 5.3 其它 总结 前言 本篇文章接linux常用命令及解释大全(一)继续介绍了一部分linux常用命令,包括文件的权限&a…

Android签名查看

查看签名文件信息 第一种方法: 1.打开cmd,执行keytool -list -v -keystore xxx.keystore,效果如下图: 第二种方法: 1.打开cmd,执行 keytool -list -v -keystore xxxx.keystore -storepass 签名文件密码&#xff0…