当前位置: 首页 > news >正文

MySQL的SQL MODE

目录

举例:

--常见SQL mode  


--mysql8 sql_mode 官方文档
https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html

--查看全局的SQL MODE

select @@global.sql_mode;

--查看当前会话的SQL MODE

select @@session.sql_mode;

--运行时修改全局的SQL mode

set global sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION";

--修改当前会话的SQL mode

set session sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION";

--删除当前会话的SQL mode

set session sql_mode = sys.list_drop(@@session.sql_mode,'ONLY_FULL_GROUP_BY');

--增加SQL mode模式

set session sql_mode = sys.list_add(@@session.sql_mode,'PIPES_AS_CONCAT');
举例:
CREATE TABLE test_stu (a VARCHAR(20),b VARCHAR(255)
);
INSERT INTO test_stu(a, b) VALUES('test1', 'test11');

 这是添加sql mode之前的查询结果

添加PIPES_AS_CONCAT模式

set session sql_mode = sys.list_add(@@session.sql_mode,'PIPES_AS_CONCAT');

添加后查询结果

--常见SQL mode  

PIPES_AS_CONCAT            :将"||"视为字符串的连接操作符而非或运算符,与Oracle数据库的处理方式相同。
STRICT_TRANS_TABLES        :在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制。
REAL_AS_FLOAT              :把REAL类型看成FLOAT类型
ANSI_QUOTES                :启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符。
IGNORE_SPACE               :函数名称和括号之间允许有空格。
ONLY_FULL_GROUP_BY         :要求SELECT语句中的列要么出现在GROUP BY子句中,要么被包含在聚合函数内。如果列没有在GROUP BY子句中出现,且又不是聚合函数的一部分,则该SQL语句不合法。
NO_AUTO_VALUE_ON_ZERO      :影响自增长列的插入。通常插入0或NULL时会生成下一个自增长值,但启用此模式后,如果想明确插入值为0,则需要使用此模式。
NO_ZERO_IN_DATE            :在严格模式下,不允许日期和月份为零。
NO_ZERO_DATE               :设置该值后,数据库不允许插入零日期,如果尝试插入零日期会抛出错误而不是警告。
ERROR_FOR_DIVISION_BY_ZERO :在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如果不设置此模式,那么数据被零除时MySQL返回NULL。
NO_AUTO_CREATE_USER        :禁止GRANT创建密码为空的用户。
NO_ENGINE_SUBSTITUTION     :如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常。
NO_BACKSLASH_ESCAPES       :用于控制是否允许在SQL语句中使用反斜杠(\)作为转义字符。当设置为0时,表示不允许使用反斜杠作为转义字符;当设置为1时,表示允许使用反斜杠作为转义字符。
ANSI                       :等同于REAL_AS_FLOAT、PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、ONLY_FULL_GROUP_BY几个模式的组合

http://www.lryc.cn/news/292397.html

相关文章:

  • GO EASY 框架 之 NET 05
  • 【教程】谈一谈 IPA 上传到 App Store Connect 的几种方法
  • 面试经典 150 题 -- 滑动窗口 (总结)
  • JDK8对List对象根据属性排序
  • 【2024美国大学生数学建模竞赛】2024美赛C题网球运动中的势头,网球教练4.0没人比我更懂这个题了!!!
  • python的Flask生产环境部署说明照做成功
  • EXCEL VBA调用百度api识别身份证
  • 【每日一题】7.LeetCode——合并两个有序链表
  • 【零基础学习CAPL】——CAN报文的发送(按下按钮同时周期性发送)
  • 六、Nacos源码系列:Nacos健康检查
  • 2024美赛C题思路/代码:网球中的动量
  • ConcurrentHashMap原理详解(太细了)
  • EasyExcel根据对应的实体类模板完成多个sheet的写入与读取
  • 在企业数字化转型过程中,IT运维发挥着怎样的价值?
  • 01-工厂模式 ( Factory Pattern )
  • 【LeetCode】每日一题 2024_2_2 石子游戏 VI(排序、贪心)
  • 一站式在线协作开源办公软件ONLYOFFICE,协作更安全更便捷
  • Java进击框架:Spring-综合(十)
  • 2024年第九届信号与图像处理国际会议(ICSIP 2024)
  • webassembly003 MINISIT mnist/convert-h5-to-ggml.py
  • fetch和axios的区别
  • 【unity小技巧】FPS简单的射击换挡瞄准动画控制
  • 如何获取时间戳
  • VSCode 设置代理
  • 保姆级教程: 零门槛制作AI微信红包封面之入门篇
  • Redis核心技术与实战【学习笔记】 - 17.Redis 缓存异常:缓存雪崩、击穿、穿透
  • Leetcode—2670. 找出不同元素数目差数组【简单】
  • App ICP备案获取iOS和Android的公钥和证书指纹
  • 猿创征文 | 项目整合KafkaStream实现文章热度实时计算
  • 状态压缩 笔记