前言

MySQL服务器可以在不同的SQL模式下运行,并且可以针对不同的客户端以不同的方式应用这些模式,具体取决于sql_mode系统变量的值。DBA可以设置全局SQL模式以匹配站点服务器操作要求,并且每个应用程序可以将其会话SQL模式设置为其自己的要求。

模式会影响MySQL支持的SQL语法以及它执行的数据验证检查。这使得在不同环境中使用MySQL以及将MySQL与其他数据库服务器一起使用变得更加容易。

设置SQL模式

要在运行时更改SQL模式,请sql_mode使用以下SET 语句设置全局或会话 系统变量

SET GLOBAL sql_mode = 'modes';

SET SESSION sql_mode = 'modes';

模式列表

模式

注释

ALLOW_INVALID_DATES

无效日期会生成错误

ERROR_FOR_DIVISION_BY_ZERO

除0错误

NO_BACKSLASH_ESCAPES

禁止使用反斜杠字符(\)作为字符串中的转义字符。启用此模式后,反斜杠就像其他任何一个普通字符一样。

NO_UNSIGNED_SUBTRACTION

在整数值之间减去(其中一个是类型) UNSIGNED,默认情况下会产生无符号结果。如果结果否则为负,则会导致错误

NO_ZERO_IN_DATE

'0000-00-00' 则允许并且插入产生警告

ONLY_FULL_GROUP_BY

select 内指定字段必须出现在 groupby 中,否则错误

STRICT_TRANS_TABLES

为事务存储引擎启用严格的SQL模式,并在可能的情况下为非事务性存储引擎启用。

STRICT_ALL_TABLES

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

严格SQL模式

MySQL服务器可以在不同的SQL模式下运行,并且可以针对不同的客户端以不同的方式应用这些模式,具体取决于sql_mode系统变量的值。在严格SQL模式下,服务器会将某些警告升级为错误。

严格SQL模式适用于以下语句

ALTER TABLE

CREATE TABLE

CREATE TABLE ... SELECT

DELETE

INSERT

LOAD DATA

LOAD XML

SELECT SLEEP()

UPDATE

在存储的程序中,如果在严格模式生效时定义了程序,则列出的类型的单个语句将以严格的SQL模式执行。

严格的SQL模式适用于以下错误,表示输入值无效或缺失的一类错误。如果值具有错误的列数据类型或可能超出范围,则该值无效。如果要插入的新行不包含其定义中NOT NULL没有显式DEFAULT子句的列的值,则缺少值。

ER_BAD_NULL_ERROR

ER_CUT_VALUE_GROUP_CONCAT

ER_DATA_TOO_LONG

ER_DATETIME_FUNCTION_OVERFLOW

ER_DIVISION_BY_ZERO

ER_INVALID_ARGUMENT_FOR_LOGARITHM

ER_NO_DEFAULT_FOR_FIELD

ER_NO_DEFAULT_FOR_VIEW_FIELD

ER_TOO_LONG_KEY

ER_TRUNCATED_WRONG_VALUE

ER_TRUNCATED_WRONG_VALUE_FOR_FIELD

ER_WARN_DATA_OUT_OF_RANGE

ER_WARN_NULL_TO_NOTNULL

ER_WARN_TOO_FEW_RECORDS

ER_WRONG_ARGUMENTS

ER_WRONG_VALUE_FOR_TYPE

WARN_DATA_TRUNCATED

致谢

感谢你看到这里,希望本篇文章可以帮到你,谢谢。

mysql sql模式_MySQL SQL模式特点汇总相关推荐

  1. mysql完成未完成_MYSQL SQL模式 (未完成)

    设置和查询SQL模式 通过修改sql_mode变量的值来改变SQL模式. SQL模式可以在全局级别下设置,也可以在会话级别下设置.在数据库启动时和数据库运行时都可以对sql_mode的值进行修改. 在 ...

  2. mysql 慢查询sql实例_Mysql sql慢查询监控脚本代码实例

    1.修改my.cnf #整体的效果,全局开启表和日志文件都写,但是对于general_log只写表,对于slow_query_log,表和日志文件都记录. general_log=1#开启mysql执 ...

  3. mysql %和正则_mysql 正则模式和like模糊查询

    MySql like模糊查询使用详解 一.SQL的模式匹配允许你使用"_"匹配任何单个字符,而"%"匹配任意数目字符(包括零个字符).在 MySQL中,SQL的 ...

  4. mysql双主复制模式_mysql复制模式第二部分-----双主模式

    双主配置 我在配置主从服务器时,使用了两台服务器:10.19.34.126和10.19.34.91. 1.首先需要在这两台上搭建单独的mysql服务masterA和masterB. 2.配置数据库ma ...

  5. mysql候选关键字_MySQL——(SQL语句)

    关系型数据库设计范式: 第一范式:当关系模式R的每个关系属性都是不可分的数据项,那么就成R是第一范式的模式(1NF) 简单说法:字段是原子性的 第二范式:党关系模式R是2NF,且关系模式R(U,F)中 ...

  6. mysql 严格模式_MySQL: 严格模式

    设置严格模式 为当前会话设置严格模式: 执行SET sql_mode = 'STRICT_TRANS_TABLES' 或者SET sql_mode = 'STRICT_ALL_TABLES'. 全局设 ...

  7. mysql 主从有哪几种模式_mysql 主从模式总结(一)

    1. 主从模式的部署步骤 目标:部署一个有3台主机的单主模式的MySQL分组. Primary:192.168.197.110. Secondary:192.168.197.111. Secondar ...

  8. Mysql的sql注入_MySQL SQL注入

    如果通过网页需要用户输入一些数据信息,并将其插入到MySQL数据库,这是一个引入SQL注入安全问题的机会.这一节将学习如何防止这种情况的发生,并帮助保护脚本和MySQL语句. 通常注入是在当要求用户输 ...

  9. mysql解释器优化_MySQL——SQL性能分析优化利器之Explain

    系统性能的优劣取决于我们sql的查询速度,MySQL Explain命令是分析SQL性能及优化不可缺少的一部分. Explain被我们称为解释器,通过 explain 我们可以知道以下信息:表的读取顺 ...

最新文章

  1. c++ map 析构函数_C++学习刷题6--C++类的使用:构造函数、析构函数和类的使用
  2. 重新精读《Java 编程思想》系列之public,protected,private与无修饰符权限的区别...
  3. 如何用我python抓取关键字新闻_用python机器学习实现新闻关键词的抽取
  4. m_Orchestrate learning system---二十、如何写代码不容易犯错
  5. Python初学者选择集成开发环境的原则!可以从以下几个方面着手
  6. TensorFlow2-迁移学习
  7. php获取蓝凑云文件列表,php调用蓝奏云下载接口
  8. (2014年3月1)Ubuntu 14.04 Beta 1-32位简体中文优化定制版
  9. CentOS7下 libvirt+virt-manager 虚拟机迁移配置及错误处理
  10. python将图片转换成二进制文本逻辑_将python图片转为二进制文本的实例
  11. 在线计算机辅助翻译软件,科学网—计算机辅助翻译软件OmegaT - 李继存的博文
  12. JS验证通过之后才提交表单
  13. 多文件自平衡云传输 (一) 资源篇 —————— 开开开山怪
  14. 狂野飙车8:极速凌云 for Mac v1.0.2 Asphalt 8 好玩的赛车游戏
  15. 软件项目管理-——project 2019 专业版
  16. 使用YYLabel匹配连接
  17. linux系统写一个计划任务并执行,Linux系统计划任务
  18. (2022年12月最新)SpringBoot远程代码执行whitelabel error page SpEL RCE漏洞复现
  19. 【Comet OJ - 2019国庆欢乐赛 F】 高速公路
  20. 计算机软件过期黑屏怎么办,Adobe flashplayer过期怎么办

热门文章

  1. android电话api,Android电话信息相关API
  2. Linux dn命令大全,linux命令大全完整版.doc
  3. onnxruntime c++ 工程实例
  4. torch.max和torch.softmax
  5. Mish激活函数,ReLU的继任者
  6. iou iof matrix_iof
  7. Downsample 平移不变性
  8. python itertools模块实现排列组合
  9. tensorflow r1.5 版本差异调研
  10. bat面试题 python 单链表反转排序