MySQL运维实战(4.7) SQL_MODE之ANSI_QUOTES

俊达2周前技术文章34

默认情况下,mysql使用反引号(`)作为标识符的引号。使用mysql关键字作为表名、字段名会报语法错误,这时可以加上反引号( `),避免报错。

设置ANSI_QUOTES后,使用双引号(")作为标识符的引号。


不设置ANSI_QUOTES时,mysql可以使用双引号来引用字符串常量。而设置ANSI_QUOTES后,双引号内的内容不再是字符串,而是mysql的标识符(如表名、字段名)



mysql> set sql_mode = '';
Query OK, 0 rows affected (0.00 sec)

-- order是关键字,不能作为表名
mysql> create table order(a varchar(100));
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order(a int)' at line 1

mysql> create table "order"(a varchar(100));
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"order"(a int)' at line 1

-- 使用反引号(``),
mysql> create table `order`(a varchar(100));
Query OK, 0 rows affected (0.02 sec)

mysql> insert into `order` values("abc");
Query OK, 1 row affected (0.00 sec)

mysql> select * from `order`;
+------+
| a    |
+------+
| abc  |
、+------+
1 rows in set (0.00 sec)



设置ANSI_QUOTES

mysql> drop table `order`;
Query OK, 0 rows affected (0.00 sec)

-- "设置ANSI_QUOTES
mysql> set sql_mode='ANSI_QUOTES';
Query OK, 0 rows affected (0.00 sec)


-- 使用双引号
mysql> create table "order"(a varchar(100));
Query OK, 0 rows affected (0.02 sec)

-- "abc" 不是合法的字符串表达式, 而是字段abc
mysql> insert into "order" values ( "abc");
ERROR 1054 (42S22): Unknown column 'abc' in 'field list'

-- 这里插入的"a"不是字符串a,而是字段a
mysql> insert into "order" values ( "a");
Query OK, 1 row affected (0.01 sec)

mysql> select * from "order";
+------+
| a    |
+------+
| NULL |
+------+






相关文章

CPU--上下文切换

CPU--上下文切换

一、概述1、Linux 是一个多任务操作系统,它支持远大于 CPU 数量的任务同时运行。当然,这些任务实际上并不是真的在同时运行,而是因为系统在很短的时间内,将 ...

MySQL运维实战(4.1) MySQL表存储引擎

MySQL表的特点和其他数据库如Oracle、SQL Server相比,mysql有一些特点:MySQL使用插件式存储引擎,同一个数据库中的表可以使用不同的存储引擎。存储引擎决定了表的物理存储格式。表...

在K8S上使用Clickhouse

介绍clickhouse是一款开源的分析型数据库,性能强大。本文介绍如何在K8S环境中部署和使用clickhouse。我们使用开源的clickhouse operator: https://githu...

某客户k3s网络故障案例

某客户k3s网络故障案例

1、出现问题     在我们吃饭的过程中,小丫告诉我客户的系统出现问题了,我们赶快吃完饭回去帮忙排查。当我们回去的时候,被告知问题已经被修复了,但是问题根源没有找到。故障原因给出的是:  服务重启后对...

CPU及磁盘性能监测

CPU及磁盘性能监测

一、简述sysstat 包含了常用的 Linux 性能工具,用来监控和分析系统的性能。本次内容会用到这个包的两个命令 mpstat 和iostat。mpstat 是一个常用的多核 CPU 性能分析工具...

CDH实操--集成 freeipa

CDH实操--集成 freeipa

1 概述环境准备: 1)安装cdh6.2.1 2)安装FreeIPA,server和client(在所有cdh节点)2 集成2.1 krb5.conf修改注释:default_ccache_nam...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。