IGNORE_SPACE SQL 模式有什么用?


IGNORE_SPACE SQL 模式可用来修改解析器处理空格敏感函数名称的方式。以下是我们可以使用 IGNORE_SPACE SQL 模式的几种情况 −

情况 1  − 禁用 IGNORE_SPACE SQL 模式时

禁用 IGNORE_SPACE SQL 模式后,名称和后面的圆括号之间没有空格时,解析器将该名称解析为函数调用。当函数名称在非表达式上下文中使用时,也会出现这种情况。可以从以下查询中理解这一点 −

mysql> Create table SUM(Id Int);
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 'SUM(Id Int)' at line 1

现在我们可以使用空格或将名称写在引号中来消除错误,并将名称作为标识符处理。以下语句执行了相同操作 −

Create table SUM (id int);
Create table ‘SUM’(id int);
Create table ‘SUM’ (id int);

情况 2 − 启用 IGNORE_SPACE SQL 模式时

启用此模式时,解析器放宽了函数名称和后面的圆括号之间不能有空格的要求。例如,启用 IGNORE_SPACE SQL 模式后,以下两个函数调用都是合法的 −

Select SUM(Salary) from employee;
Select SUM (Salary) from employee;

但是,在这种情况下,解析器将函数名称视为保留字。这意味着名称后的空格不再表示标识符。

更新日期: 22-06-2020

浏览量:530

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告