| 与其它数据库不同,MySQL 服务器可以在不同的 SQL 模式下运行,并且可以针对不同的客户端以不同的方式应用这些模式,具体取决于 sql_mode 系统变量的值。 |
SQL 模式定义了 MySQL 数据库所支持的 SQL 语法和数据校验(数据验证检查),这样可以更容易的在不同环境下使用 MySQL。
在 MySQL 中,SQL 模式常用来解决下面几类问题:
通过设置 SQL Mode,可以完成不同严格程度的数据校验,有效地保障了数据的准确性。
通过设置 SQL Mode 为 ANSI 模式,可以保证大多数 SQL 符合标准的 SQL 语法,使不同数据库之间进行迁移时,不需要进行较大的修改。
在不同数据库之间进行数据迁移之前,设置 SQL Mode 可以使 MySQL 中的数据更方便地迁移到目标数据库中。
下面列出了几种 SQL 模式常用的值。
如果将 sql_mode 的值设置为 TRICT_ALL_TABLES 和 STRICT_TRANS_TABLES,那么 MySQL将启用“严格”模式。在严格模式下,MySQL 服务器会更加严格地对待接收到的不合格数据,它不会把这些不合格的数据转换为最为接近的有效值,而是会拒绝接收它们。
简单来说 MySQL 的严格模式就是 MySQL 自身对数据进行的严格校验,例如格式、长度和类型等。
类似于严格模式,但是对于插入的不合格值会给出错误而不是警告。可以应用在事务表和非事务表,用于事务表时,只要出现错误就会立即回滚。
如果你使用的是非事务存储引擎,建议不要把 SQL Mode 值设置为 TRADITIONAL,因为出现错误前进行的操作不会回滚,这样会导致操作只进行了一部分。
MySQL 服务器会把双引号识别为一个标识符引用字符,而不是字符串的引号字符。所以在启用 ANSI_QUOTES 时,不能用双引号来引用字符串。
会让 MySQL 服务器把||当成一个标准的 SQL 字符串连接运算符,而不会把它当成是 OR 运算符的同义词。
在 Oracle 等数据库中,||被视为字符串的连接操作符,所以在其它数据库中含有||操作符的 SQL 在 MySQL 中将无法执行,为了解决这个问题,MySQL 提供了这个值。
会同时启用 ANSI_QUOTES、PIPES_ AS_CONCAT 和其它的几个模式值,使 MySQL 服务器的行为比它的默认运行状态更接近于标准 SQL。
在设置 SQL 模式时,需要指定一个由单个模式值或多个模式值(多个模式值用逗号分隔)构成的值,或者指定一个空字符串,用以清除该值。模式值不区分大小写。
如果想在启动服务器时设置 SQL 模式,那么可以在 mysqld 命令行,或者在某个选项文件里设置系统变量 sql_mode。可以使用下面语句:
sql_mode= "TRADITIONAL " sql_mode= "ANSI_ QUOTES, PIPES_ AS_ CONCAT"
如果只是想在运行时更改 SQL 模式,那么可以使用 SET 语句来设置 sql_mode 系统变量。
SET sql_mode = ' TRADITIONAL' ;
如果想设置全局性的 SQL 模式,则需要加上 GLOBAL 关键字:
SET GLOBAL sql_mode = ' TRADITIONAL';
设置全局变量需要具备 SUPER 管理权限。新设置的全局变量值将成为此后连入客户端的默认 SQL 模式。
如果想获取当前会话或全局的 SQL 模式值,则可以使用如下语句:
SELECT @@SESSION.sql_mode; SELECT @@GLOBAL. sql_mode;
其返回值由当前启用的所有模式构成,两个模式之间以逗号隔开。如果当前没有启用任何模式,则返回一个空值。原文地址: https://www.linuxprobe.com/mysql-sql.html
编辑推荐:
- MySQL服务器的SQL模式03-01
- 自媒体一键同步分发平台的工具,30万人都在用这款!03-01
- 一键分发工具哪个最好用?3年资深自媒体人推荐这个!03-01
- 哪个自媒体同步工具最好用?还能免费使用03-01
- 解决centos7 安装MySQLdb-python 报错 方案03-01
- 怎么把一段短视频发到多个自媒体平台上?方法篇03-01
- MYSQL5.7.22全库备份导入MYSQL8.0.20报错ERROR355403-01
- MySQL性能相关参数03-01
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 自媒体一键同步分发平台的工具,30万人都在用这款!
自媒体一键同步分发平台的工具,30万人都在用这款!
26-03-01 - 一键分发工具哪个最好用?3年资深自媒体人推荐这个!
一键分发工具哪个最好用?3年资深自媒体人推荐这个!
26-03-01 - 哪个自媒体同步工具最好用?还能免费使用
哪个自媒体同步工具最好用?还能免费使用
26-03-01 - 怎么把一段短视频发到多个自媒体平台上?方法篇
怎么把一段短视频发到多个自媒体平台上?方法篇
26-03-01 - MYSQL5.7.22全库备份导入MYSQL8.0.20报错ERROR3554
- MySQL性能相关参数
MySQL性能相关参数
26-03-01 - mysql双写造成主从数据不一致的实验
mysql双写造成主从数据不一致的实验
26-03-01 - 使用elasticsearch搭建自己的搜索系统
使用elasticsearch搭建自己的搜索系统
26-03-01 - 更改用户host留下的坑
更改用户host留下的坑
26-03-01 - MySQL索引知识介绍
MySQL索引知识介绍
26-03-01
