IGNORE_SPACE SQL 모드는 구문 분석기가 공백을 구분하는 함수 이름을 처리하는 방법을 수정하는 데 사용할 수 있습니다. 다음은 IGNORE_SPACE SQL 모드를 사용할 수 있는 경우입니다 -
Case-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);
Case-2 - IGNORE_SPACE SQL 모드가 활성화된 경우
이 모드를 활성화하면 파서는 함수 이름과 다음 괄호 사이에 공백이 없어야 한다는 요구 사항을 완화합니다. 예를 들어, IGNORE_SPACE SQL 모드를 활성화한 후 다음 함수 호출은 모두 유효합니다. −
Select SUM(Salary) from employee; Select SUM (Salary) from employee;
그러나 이 경우 파서는 함수 이름을 예약어로 취급합니다. 이름 뒤에 오는 공백이 더 이상 식별자를 나타내지 않는다는 의미입니다.