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

mysql的sql_mode模式


1、sql_mode是MySQL中的一个系统变量,用于设置服务器在执行SQL语句时的行为模式。它可以控制服务器的严格性和特性,包括数据校验、日期处理、空值处理等。

下面是一些常见的sql_mode模式及其作用:

STRICT_ALL_TABLES:为所有存储引擎开启严格SQL模式。无效的数据值被拒绝。

STRICT_TRANS_TABLES:启用严格的事务模式,如果插入操作违反约束条件或类型不匹配,则会抛出错误。

NO_ENGINE_SUBSTITUTION:如果指定了一个不存在的存储引擎,该模式会报错而不是自动替换为默认存储引擎。

ONLY_FULL_GROUP_BY:要求GROUP BY子句中的每个列都在SELECT列表中显式出现,这样可以避免隐含的聚合行为和结果不准确的情况。

ERROR_FOR_DIVISION_BY_ZERO:当除数为0时,会抛出错误而不是返回NULL值。
TRADITIONAL:启用所有传统MySQL的严格模式。

NO_AUTO_VALUE_ON_ZERO    该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户 希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。
STRICT_TRANS_TABLES    在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制。

NO_ZERO_IN_DATE    在严格模式下,禁止在日期中使用“0”值,例如“0000-00-00”将被视为无效值。

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

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

PIPES_AS_CONCAT 将||视为字符串连接运算符(与CONCAT()相同),而不是OR的同义词。

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

ALLOW_INVALID_DATES 不要执行完整的日期检查。只检查月份是否在1到12的范围内Day的取值范围为1 ~ 31。

2、查询sql_mode

show VARIABLES like 'sql_mode';
//或者
select @@sql_mode

3、设置sql_mode

执行sql语句设置:

SET GLOBAL sql_mode = 'modes'; //全局设置
SET SESSION sql_mode = 'modes'; //只在当前会话生效

在配置文件中设置:

[mysqld]
sql_mode=modes

注意modes之间用“,”隔开,在配置文件设置后需要重启

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

相关文章:

  • chatgpt赋能python:Python编程必备之OpenCV库下载与安装
  • sparkSQL的使用
  • gitignore的语法
  • 长袋除尘器
  • HTML+CSS实训——Day02——仿一个网易云音乐的登陆界面
  • css蓝桥杯--电影院排座位
  • c++学习——多态
  • Java SPI机制及原理详解
  • 不压缩打包layui
  • 过去、现在及未来
  • leetcode701. 二叉搜索树中的插入操作(java)
  • Docker的容器管理操作
  • 计算机组成原理——中央处理器
  • tidb变更大小写敏感问题的总结
  • 法规标准-UN R158标准解读
  • 160个CrackMe之002
  • 3. 响应状态码及Response对象的status_code属性
  • MIME 类型列表 03
  • SpringBoot项目登录并接入MFA二次认证
  • 算法与数据结构(三)
  • 亚马逊云科技出海日,让数字经济出海扩展到更多行业和领域
  • Pb协议的接口测试
  • 2. 分布式文件系统 HDFS
  • 借助金融科技差异化发展,不一样的“破茧”手法
  • typescript中type、interface的区别
  • Ingress详解
  • 【递归算法的Java实现及其应用】
  • 2023年度第四届全国大学生算法设计与编程挑战赛(春季赛)
  • 如何用PHP获取各大电商平台的数据
  • 一站式完成车牌识别任务:从模型优化到端侧部署