MySQL中SQL模式的特点总结
作者:CrazyCodes 发布时间:2024-01-13 16:08:05
前言
SQL模式影响MySQL支持的SQL语法和执行的数据验证检查。
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模式。无效的数据值被拒绝。 |
详情请参考 https://dev.mysql.com/doc/ref...
严格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
致谢
感谢你看到这里,希望本篇文章可以帮到你,谢谢。
来源:https://segmentfault.com/a/1190000016357524


猜你喜欢
- 空接口定义空接口是特殊形式的接口类型,普通的接口都有方法,而空接口没有定义任何方法口,也因此,我们可以说所有类型都至少实现了空接口。type
- golang的字符有如下两种:一种是 uint8['ju:nɪt] 类型叫做 byte 型,代表了 ASCII 码的一个字符。另一种
- 性能不理想的系统中除了一部分是因为应用程序的负载确实超过了服务器的实际处理能力外,更多的是因为系统存在大量的SQL语句需要优化。为了获得稳定
- 我使用的Python3.5,32版本win764位系统,pandas0.19版本,使用df=pd.read_clipboard()的时候读不
- 1. lock互斥锁知识点:lock.acquire()# 上锁lock.release()# 解锁#同一时间允许一个进程上一把锁 就是Lo
- 本文实例讲述了python通过定义一个类实例作为ftp回调方法。分享给大家供大家参考。具体实现方法如下:class Writer: &nbs
- 前言:记一次golang使用json进行对象copy的内存溢出问题排查问题现象:新增的功能,灰度部署在k8s集群的服务,发现机器老是被打崩,
- 爬取网站为:http://xiaohua.zol.com.cn/youmo/查看网页机构,爬取笑话内容时存在如下问题:1、每页需要进入“查看
- PHP 301跳转的小代码<?php $the_host = $_SERVER['HTTP
- 在PCA中有遇到,在这里记录一下计算矩阵的特征值个特征向量,下面给出几个示例代码:在使用前需要单独import一下>>>
- 以前的服务器,由于内存的价格过高,一般配置的内存不是很多,超过4GB的当然就不多了.现在的服务器,配置超过4GB就很多,在配作SQL 数据库
- mysql在5.1之后增加了存储过程的功能, 存储过程运行在mysql内部,语句都已经编译好了,速度比sql更快. 存储过程与mysql相当
- asp使用fso对象遍历目录及目录下的文件代码:<%@ Language=VBScript %><%&
- 第一部分 关于requests库(1) requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用
- show.php源代码: <? if ($action=="cp"){ echo"<div ali
- 地图 API Map() 构造器实例创建一个 Google 地图:<html><head><scriptsrc
- 增加索引可以提高查询效率。增加索引就是增加一个索引文件,存放的是数据的地址,类似与我们文档的目录,在查找过程中可以不用从书的内容查找,直接根
- 在使用Django项目中,From表单提交了图片集合var formdata = new FormData();formdata.appen
- Blender 并不是唯一一款允许你为场景编程和自动化任务的3D软件; 随着每一个新版本的推出,Blender 正逐渐成为一个可靠的 CG
- 本文实例讲述了Python解析json的方法。分享给大家供大家参考,具体如下:刚学习到Python中解析json的方法,觉得有必要在这里坐下