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;

不过,在这种情况下,解析器将函数名作为保留字进行处理。这意味着名称后面的空格不再代表标识符。

更新日期: 2020-06-22

530 次浏览

开启你的 职业之旅

完成课程,获得认证

开始学习
广告