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;

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

猜你喜欢