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.mzph.cn/news/653821.shtml

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

相关文章

Python笔记14-实战小游戏飞机大战(上)

文章目录 功能规划安装pygame绘制游戏窗口添加玩家飞机图像屏幕上绘制飞船代码重构驾驶飞船全屏模式射击 本示例源码地址 点击下载 功能规划 玩家控制一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船,还可使用空格键射击。游戏开始时&#xff…

敲黑板啦!CSGO游戏搬砖项目操作注意事项

CSGO游戏搬砖项目怎么赚钱的,利润在哪? 1.两个平台之间币种不一样,就存在一个汇率差,两平台装备价格也不一样,汇率差-价格差利润。 CSGO游戏搬砖项目具体有哪些操作步骤? 1、准备一台电脑,配置…

使用npm安装插件时报权限问题解决方法

使用npm安装插件时报权限问题解决方法 使用npm安装yarn时总报这个错误,显示权限问题,之前安装其它插件包的时候也有遇到过,总是潦草解决,今天仔细查了一下,是我没有管理端权限,应该是之前安装npm的时候没有…

IDEA 构建开发环境

本博客主要讲解了如何创建一个Maven构建Java项目。(本文是创建一个用Maven构建项目的方式,所以需要对Maven有一定的了解) IDEA 构建开发环境 一、创建一个空工程二、构建一个普通的Maven模块 一、创建一个空工程 创建一个空的工程 * 设置整…

VMware中CentOS 7解决网络问题

问题描述 在 VMware 中使用 CentOS 7 中使用 ping www.baidu.com 测试网络是否能正常连接。 出现了未知的名称和服务的问题: 解决方案一 在服务中检查 VMware NAT Service 是否开启 解决方案二 在控制面板中的网络适配器里检查 解决方案三 检查VMware中的网络适…

周报(20240128)

日期:2024.1.22 - 2024.1.28 本周工作: 1. 阅读论文 本周阅读了以下论文: 《BRAU-Net:用于医学图像分割的U形混合CNN-Transformer网络》 背景 精确的医学图像分割对于临床量化、疾病诊断、治疗计划和许多其他应用至关重要。基…

【Linux】CentOS 7 安装配置Python

目录 一、简介 二、下载与安装 1、更新软件包 2、安装编译所依赖的环境 3、下载压缩包 4、解压 5、配置编译参数 6、编译和安装 7、查看python版本 8、创建软连接 9、pip换源(清华源为例)、更新 一、简介 Linux系统一般都自带python&#xff…

Linux实验记录:使用LVM(逻辑卷管理器)

前言: 本文是一篇关于Linux系统初学者的实验记录。 参考书籍:《Linux就该这么学》 实验环境: VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注: 硬盘分好区或者部署为RAID磁盘阵列…

Python根据Excel表进行文件重命名

一、问题背景 在日常办公过程中,批量重命名是经常使用的操作。之前我们已经进行了初步探索,主要是通过批处理文件、renamer软件或者Python中的pathlib等模块对当前目录下的文件进行批量重命名。 而今天我们要使用的是PythonExcel的方法对指定目录下的文…

MySQL:三大日志(binlog、redolog、undolog)

再了解三个日志前我们先了解一下MySQL的两层架构: Server 层负责建立连接、分析和执行 SQL。MySQL 大多数的核心功能模块都在这实现,主要包括连接器,查询缓存、解析器、预处理器、优化器、执行器等。另外,所有的内置函数和所有跨…

Unity读书系列《Unity3D游戏开发》——拓展编辑器(一)

文章目录 前言一、扩展Project视图1、右键扩展菜单(Asset)2、监听事件3、拓展布局 二、扩展Hierarchy视图1、拓展菜单(GameObject)2、拓展布局3、重写菜单 三、扩展Inspector视图1、扩展原生组件2、扩展继承组件 四、扩展Scene视图…

【每日一题】5.LeetCode——环形链表

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢迎各位大佬指点&…

【智能家居入门之环境信息监测】(STM32、ONENET云平台、微信小程序、HTTP协议)

作为入门本篇只实现微信小程序接收下位机上传的数据,之后会持续发布如下项目:①可以实现微信小程序控制下位机动作,真正意义上的智能家居;②将网络通讯协议换成MQTT协议再实现上述功能,此时的服务器也不再是ONENET&…

【动态规划】【字符串】【行程码】1531. 压缩字符串

作者推荐 视频算法专题 本文涉及知识点 动态规划汇总 LeetCode 1531. 压缩字符串 II 行程长度编码 是一种常用的字符串压缩方法,它将连续的相同字符(重复 2 次或更多次)替换为字符和表示字符计数的数字(行程长度)…

MyBatis详解(6)-- 分页及缓存

MyBatis详解(6) 分页缓存特点:限制:术语:加载分类立即加载:延迟加载:mybatis缓存: 缓存的适用性MyBatis 缓存分类一级缓存注意:一级缓存未命中二级缓存二级缓存的优劣自定…

qq通讯录怎么关闭?QQ好友删除了怎么恢复?

在QQ中,通讯录是我们管理好友和进行聊天的重要工具,但有时候我们可能需要一些隐私保护,不让一些用户通过手机通讯录添加自己。如果您正在思考qq通讯录怎么关闭以及恢复意外删除的好友,本文将为您详细介绍如何关闭QQ通讯录和恢复被…

php实现多进程的几种方式

目录 一:使用pcntl扩展库 二:使用Swoole扩展 三:使用多进程模式PHP-FPM 在PHP中实现多进程主要有以下几种方式: 一:使用pcntl扩展库 pcntl扩展库提供了多线程相关的函数,如pcntl_fork()用于创建子进程…

详解操作系统各章大题汇总(死锁资源分配+银行家+进程的PV操作+实时调度+逻辑地址->物理地址+页面置换算法+磁盘调度算法)

文章目录 第三章:死锁资源分配图例一例二 第三章:银行家算法第四章:进程的同步与互斥做题步骤PV操作的代码小心容易和读者写者混 1.交通问题(类似读者写者)分析代码 2.缓冲区问题(第二个缓冲区是复制缓冲区…

RK3568驱动指南|驱动基础进阶篇-进阶6 内核运行ko文件实验——系统调用

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

Idea编写mapper.xml文件提示表名和字段

一、连接database 二、setting- > language -> sql Dialects中 的选项设为 mysql就可以了 三、测试