MySQL的sql_mode合理设置

2023-09-16 08:15:56

MySQL的sql_mode合理设置

1、sql_mode设置介绍说明

sql_mode是个很容易被忽视的变量,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入。在生产环境必须将这个值设置为严格模式,所以开发、测试环境的数据库也必须要设置,这样在开发测试阶段就可以发现问题。
在这里插入图片描述

show  variables like 'sql_mode';

2、sql_mode常用值:

set sql_mode='ONLY_FULL_GROUP_BY';

ONLY_FULL_GROUP_BY:
对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中

NO_AUTO_VALUE_ON_ZERO:
该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户 希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。

STRICT_TRANS_TABLES:
在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制

NO_ZERO_IN_DATE:
在严格模式下,不允许日期和月份为零

NO_ZERO_DATE:
设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告。

ERROR_FOR_DIVISION_BY_ZERO:
在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时MySQL返回NULL

NO_AUTO_CREATE_USER:
禁止GRANT创建密码为空的用户

NO_ENGINE_SUBSTITUTION:
如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常

PIPES_AS_CONCAT:
将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似

ANSI_QUOTES:
启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符

ORACLE:
设置等同:PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE, NO_KEY_OPTIONS, NO_TABLE_OPTIONS, NO_FIELD_OPTIONS, NO_AUTO_CREATE_USER.

更多推荐

华为高斯数据库配置环境变量(DWS,高斯数据库,libra) 报错:sh: gsql: command not found

在进行高斯数据库相关的迁移时提示错误(gsql:commandnotfound)1:根据日志分析缺少高斯数据库客户端,需要对安装客户端。2:需要和客户获取客户端安装包,我这里拿到的版本是这样的3:将安装包上传至服务器目录之后需要配置当前用户的环境变量4:编辑家目录下的配置文件~/.bash_profile5:增加一行配

微服务的艺术:构建可扩展和弹性的分布式应用

文章目录什么是微服务架构?微服务的设计原则1.基于业务边界划分服务2.松耦合和强内聚3.自动化测试和部署4.监控和日志5.弹性设计微服务的实施细节1.服务发现示例代码:使用Consul进行服务发现2.负载均衡示例代码:Nginx配置负载均衡3.数据管理示例代码:使用消息队列进行数据共享4.弹性设计示例代码:使用Kube

基于Matlab实现图像目标边界描述

图像目标边界描述是图像处理中的一个重要问题。边界描述可以用于目标检测和识别、图像分割等应用。Matlab提供了强大的图像处理工具箱,可以方便地实现图像目标边界描述。本文介绍一种基于边缘检测的图像目标边界描述方法,并提供一个简单的案例源码。文章目录步骤简单案例更多源码+图像下载步骤方法:基于边缘检测的图像目标边界描述方法

ruoyi框架修改左侧菜单样式

菜单效果ruoyi前端框架左侧的菜单很丑,我们需要修改一下样式,下面直接看效果。修改代码1、sidebar.scss.el-menu-item,.el-submenu__title{overflow:hidden!important;text-overflow:ellipsis!important;white-spac

Thymeleaf介绍及其在Spring Boot中的使用

📖Thymeleaf简介📚Thymeleaf的定义Thymeleaf是一款现代化的服务器端Java模板引擎,适用于Web和独立应用场景。它具备处理HTML、XML、JavaScript、CSS以及纯文本的能力。Thymeleaf的核心目标是为开发者提供一种优雅且自然的模板设计方式,从而使得开发者能够更加便捷地构建、

httpclient3.1跳过ssl验证

原来的老项目调用一个Http的服务,最近http的服务调整成了https,因此需要调整一下,网上大部分都是4.5以上版本,3.1版本处理方法比较少,因此记录一下一、实现两个类1.MyX509TrustManagerimportjava.security.cert.CertificateException;importj

SSL加速是什么,有什么优势?

SSL加速技术是一种专门用于加速HTTPS通信的技术,它可以在服务器和客户端之间提供高效的加密和解密处理,以提升网络通信的安全性和性能。以下是SSL加速技术的一些主要优势:提高网站的访问速度:SSL加速技术可以对SSL握手过程进行优化,加快SSL连接速度,从而减少响应时间和延迟,提高网站的访问速度。降低服务器负载:SS

Nacos注册中心

Nacos安装https://nacos.io/zh-cn/源码安装第一步:利用Gitee获取nacos在github上的代码到自己的gitee仓库中https://github.com/alibaba/nacos.git第二步:下载源码到本地。第三步:使用maven编译代码。#先切换到master分支gitcheck

git及dbc的学习

1)git的使用方法CommandlineinstructionsYoucanalsouploadexistingfilesfromyourcomputerusingtheinstructionsbelow.Gitglobalsetupgitconfig--globaluser.name"username"gitcon

redis分布式锁

用于用户重复注册,点击过快,有可能会注册相同的手机号问题。给用户手机号枷锁一分钟时间,判断相同的手机号。判断下面这块代码执行时间是否超过一分钟时间,不论超没超过都会释放锁,下个同样的手机号再次注册,都得等到代码执行完毕后(或者是一分钟后)才能进行注册,防止有两个相同的手机号,两个线程,查询数据库都没存在,而注册了两次,

竞赛选题 基于机器视觉的银行卡识别系统 - opencv python

1前言🔥优质竞赛项目系列,今天要分享的是基于深度学习的银行卡识别算法设计该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!🧿更多资料,项目分享:https://gitee.com/dancheng-senior/postgraduate2算法设计流程银行卡卡号识别技术原理是先对银行卡图像定位,保障获取图像绝对位置

热文推荐