码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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
    
    • 1
    select @@SESSION.sql_mode
    
    • 1
    • 查看my.conf配置文件(文件夹路径为)
    C:\ProgramData\MySQL\MySQL Server 8.0
    
    • 1

    在这里插入图片描述

    三、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
    
    • 1

    四、常见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'
    
    • 1
    SET SESSION sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
    
    • 1

    配置文件设置

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

    参考文档

    • sql_mode详解(超详细,亲测有效)
  • 相关阅读:
    读书笔记:软件工程(4) - 软件过程模型:瀑布模型
    ruoyi识别访问设备是pc端还是移动端跳转到对应的登录页面
    uni-app:本地缓存的使用
    【操作系统】内存管理
    uniapp自定义图标库引入
    基于ssm+vue的师生防疫登记管理系统 elementui
    机器人控制器编程整理汇总-辞旧迎新-
    html学习笔记
    R语言修改dataframe数据列的名称:使用dplyr包的rename函数修改列名、使用colnmaes函数修改列名、在数据筛选的时候重命名列名
    Git版本控制管理——diff
  • 原文地址:https://blog.csdn.net/m0_46085118/article/details/132737981
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号