常见的SQL MODE及其解释

MySQL的SQL MODE用于控制MySQL对SQL语句的执行和处理的模式,‌主要作用包括:‌

  • 严格模式:‌例如STRICT_ALL_TABLES,‌在严格模式下,‌MySQL会更加严格地对待数据的插入、‌更新和删除操作,‌对于不合法的数据操作会返回错误信息,‌确保数据的完整性和一致性。‌
  • 数据校验:‌某些选项如NO_ZERO_DATENO_ZERO_IN_DATE可以阻止插入或更新日期和时间类型的字段为零值,‌避免出现无效的日期或时间数据。‌
  • 数据类型转换:‌选项如IGNORE_SPACEPIPES_AS_CONCAT可以改变MySQL对于字符串和数字之间的隐式转换规则,‌从而影响表达式的计算结果。‌
  • 语法兼容性:‌某些选项如ANSI_QUOTESONLY_FULL_GROUP_BY可以使MySQL的语法更加严格,‌以符合ANSI SQL标准,‌减少开发者在不同数据库系统之间切换时出现的语法差异问题。‌
  • 安全性:‌选项如NO_BACKSLASH_ESCAPESNO_UNSIGNED_SUBTRACTION可以提高MySQL的安全性,‌避免一些潜在的安全漏洞。‌

通过设置不同的SQL MODE选项,‌可以改变MySQL的执行和处理方式,‌从而提高数据的完整性、‌一致性和安全性。‌此外,‌SQL MODE的设置还可以帮助解决不同严格程度的数据校验问题,‌保证大多数SQL符合标准的SQL语法,‌以及在不同数据库之间进行数据迁移时使MySQL上的数据更方便地迁移到目标数据库中

SQL MODE

解释

STRICT_TRANS_TABLES

为事务存储引擎启用严格的sql模式,在插入不合法数据时,mysql将不再插入默认值,而是抛出错误,这样可以保证数据的完整性和一致性。

这种模式比较适合对数据完整性要求严格的场景。

ANSI

等同于

REAL_AS_FLOAT,

PIPES_AS_CONCAT,

ANSI_QUOTES,

IGNORE_SPACE和ONLY_FULL_GROUP_BY

TRADITIONAL

为事务存储引擎启用严格的sql模式,在插入不合法数据时,mysql将不再插入默认值,而是抛出错误.

这样可以确保数据的完整性和一致性,这种模式比较适合对数据完整性要求更严格的场景.

ONLY_FULL_GROUP_BY

可以理解为让mysql像传统的sql数据库一样运行,等同于

STRICT_TRANS_TABLES,

STRICT_ALL_TABLES,

NO_ZERO_IN_DATE,

NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO

和NO_ENGINE_SUBTITUTION

NO_BACKSLASH_ESCAPES

如果某个列不在group by列表中,此时如果不对该列进行聚合处理,则该列不能出现在select列表,having条件中以及order by列表中

PIPES_AS_CONCAT

启用此模式将禁止使用反斜杠字符”\”作为字符串和标识符中的转义字符,反斜杠将像其他字符一样变成普通字符

NO_ENGINE_SUBTITUTION

将 ”||” 视为字符串连接操作符

NO_ZERO_DATE

启用此模式时,如果创建或者更改表时指定了不可用的存储引擎,则报错不执行;未启用此模式时,会替换成默认存储引擎

ERROR_FOR_DIVISION_BY_ZERO

启用此模式,’0000-00-00’则允许插入并成产生警告;

如果启用此模式和严格模式,则不允许’0000-00-00’插入,并会报错;

除非使用IGNORE.

对于insert ignore and update ignore,除以零插入NULL并产生警告

NO_ZERO_IN_DATE

如果启用此模式,则零部分的日期将被插入’0000-00-00’并产生警告;

如果启用此模式和严格模式,则不允许包含0的日期输入,会直接报错.

REAL_AS_FLOAT

把REAL类型(存储大小4个字节,可精确到小数点后7位)看成FLOAT类型(存储大小为8字节,可精确到小数点后第15位)

ANSI_QUOTES

双引号将被视为标识符的引号,而不是字符串的引号

IGNORE-SPACE

函数名称和(之间允许有空格,会导致内置的函数变成保留字)

Sql mode文档地址:

MySQL :: MySQL 8.0 Reference Manual :: 7.1.11 Server SQL Modes

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

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

相关文章

高职院校人工智能人才培养成果导向系统构建、实施要点与评量方法

一、引言 近年来,人工智能技术在全球范围内迅速发展,对各行各业产生了深远的影响。高职院校作为培养高技能人才的重要基地,肩负着培养人工智能领域专业人才的重任。为了适应社会对人工智能人才的需求,高职院校需要构建一套科学、…

【node-RED 4.0.2】连接 Oracle 数据库踩坑解决,使用模组:node-red-contrib-agur-connector

关于 Oracle Oracle 就好像一张吸满水的面巾纸,你稍一用力它就烂了。 PS:我更新了更好的模组的教程,这篇已经是旧款的教程,但是它仍旧包含了必要的配置环境变量等操作。 最新的模组教程:node-red-contrib-agur-connec…

AI时代:探索个人潜能的新视角

文章目录 Al时代的个人发展1 AI的高速发展意味着什么1.1 生产力大幅提升1.2 生产关系的改变1.3 产品范式1.4 产业革命1.5 Al的局限性1.5.1局限一:大模型的幻觉1.5.2 局限二:Token 2 个体如何应对这种改变?2.1 职场人2.2 K12家长2.3 大学生2.4 创业者 3 人工智能发展…

解决vue3中el-input在form表单按下回车刷新页面

问题:在input框中点击回车之后不是调用我写的回车事件,而是刷新页面 原因: 如果表单中只有一个input 框则按下回车会直接关闭表单 所以导致刷新页面 解决方法 : 再写一个input 表单 ,并设置style"display:none&…

云端财富:在iCloud中安全存储你的个人财务管理数据

云端财富:在iCloud中安全存储你的个人财务管理数据 在数字时代,个人财务管理变得越来越重要。iCloud作为苹果公司提供的云服务,不仅可以存储照片和文档,还可以安全地存储和管理你的个人财务管理数据。本文将详细解释如何在iCloud…

SimMIM:一个类BERT的计算机视觉的预训练框架

1、前言 呃…好久没有写博客了,主要是最近时间比较少。今天来做一期视频博客的内容。本文主要讲SimMIM,它是一个将计算机视觉(图像)进行自监督训练的框架。 原论文:SimMIM:用于掩码图像建模的简单框架 (a…

解决虚拟机与主机ping不通,解决主机没有vmware网络

由于注册表文件缺失导致,使用这个工具 下载cclean 白嫖就行 https://www.ccleaner.com/ 是 点击修复就可以了

关于电路设计中,按键与电阻的问题

一 、在电路图中常看到有些按键外加了电阻而有些没有外加电阻,有上拉有下拉,这些电阻起什么作用,如果不加会导致什么情况? 在电路图中,按键通常需要加电阻来确保稳定的工作状态和消除抖动。按键在电路中扮演着重要的输…

评判卓越架构设计师的关键指标

目录 1. 技术能力 1.1 深厚的技术基础 1.2 架构设计模式 1.3 性能优化和扩展能力 2. 软技能 2.1 沟通能力 2.2 领导能力 2.3 解决问题的能力 3. 实践经验 3.1 项目经验 3.2 持续学习 3.3 失败教训 4. 对业务的理解 4.1 深入理解业务需求 4.2 与产品团队紧密合作…

防火墙双机热备带宽管理综合实验

一、实验拓扑 二、实验要求 12,对现有网络进行改造升级,将当个防火墙组网改成双机热备的组网形式,做负载分担模式,游客区和DMZ区走FW3,生产区和办公区的流量走FW1 13,办公区上网用户限制流量不超过100M&am…

技术速递|Let’s Learn .NET Aspire – 开始您的云原生之旅!

作者:James Montemagno 排版:Alan Wang Let’s Learn .NET 是我们全球性的直播学习活动。在过去 3 年里,来自世界各地的开发人员与团队成员一起学习最新的 .NET 技术,并参加现场研讨会学习如何使用它!最重要的是&#…

Java IO中的 InputStreamReader 和 OutputStreamWriter

Java IO 的流,有三个分类的维度: 输入流 or 输出流节点流 or 处理流字节流 or 字符流 在Java IO库中,InputStreamReader和OutputStreamWriter是两个非常重要的类,它们作为字符流和字节流之间的桥梁。 这两个类使得开发者可以方…

整数或小数点后补0操作

效果展示: 整数情况: 小数情况: 小编这里是以微信小程序举例,代码通用可兼容vue等。 1.在utils文件下创建工具util.js文本 util.js页面: // 格式…

淘宝扭蛋机小程序:旋转惊喜,开启购物新篇章!

在追求创新与惊喜的购物时代,淘宝再次引领潮流,精心打造——淘宝扭蛋机小程序,为您的购物之旅增添一抹不同寻常的色彩。这不仅仅是一个购物工具,更是一个充满趣味、互动与惊喜的宝藏盒子,等待您来探索与发现。 【旋转…

通过Dockerfile构建镜像

案例一: 使用Dockerfile构建tomcat镜像 cd /opt mkdir tomcat cd tomcat/ 上传tomcat所需的依赖包 使用tar xf 解压三个压缩包vim Dockerfile FROM centos:7 LABEL function"tomcat image" author"tc" createtime"2024-07-16"ADD j…

【 香橙派 AIpro评测】烧系统运行部署LLMS大模型跑开源yolov5物体检测并体验Jupyter Lab AI 应用样例(新手入门)

文章目录 一、引言⭐1.1下载镜像烧系统⭐1.2开发板初始化系统配置远程登陆💖 远程ssh💖查看ubuntu桌面💖 远程向日葵 二、部署LLMS大模型&yolov5物体检测⭐2.1 快速启动LLMS大模型💖拉取代码💖下载mode数据&#x…

第九课:服务器发布(静态nat配置)

一个要用到静态NAT的场景,当内网有一台服务器server1,假如一个用户在外网,从外网访问内网怎么访问呢,无法访问,这是因为外网没办法直接访问内网,这时候需要给服务器做一个静态NAT。 静态NAT指的是给服务器…

gltf模型加载 与3d背景贴图

Poly Haveny 用于3d模型跟贴图下载资源 Sketchfab 里面有免费的模型 模型放到public里面 const loader new GLTFLoader()// 加载GLTF模型loader.load(/scene.gltf,(gltf) > {// 将加载的模型添加到场景中scene.add(gltf.scene)// 现在你可以开始渲染循环了let angle …

深度学习落地实战:基于UNet实现血管瘤超声图像分割

前言 大家好,我是机长 本专栏将持续收集整理市场上深度学习的相关项目,旨在为准备从事深度学习工作或相关科研活动的伙伴,储备、提升更多的实际开发经验,每个项目实例都可作为实际开发项目写入简历,且都附带完整的代…

minimap2安装与使用(v 2.28)生物信息学工具26

01 背景 Minimap2 是一个多功能的序列比对程序,可以将 DNA 或 mRNA 序列与大型参考数据库进行比对。典型的使用案例包括:(1)将 PacBio 或 Oxford Nanopore 基因组读长映射到人类基因组;(2)在误…