Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

IGNORE_SPACE SQL 모드로 파서의 내장 함수 이름 구문 분석 규칙 변경하기

파서(parser)가 내장 함수(built-in function)의 이름을 구문 분석할 때 적용하는 기본 규칙은 IGNORE_SPACE SQL 모드를 활성화하여 변경할 수 있습니다.

IGNORE_SPACE SQL 모드란?

기본적으로 MySQL 파서는 함수 이름과 그 뒤에 따라오는 괄호 ( 사이에 공백이 있으면 안 된다는 엄격한 규칙을 적용합니다. 하지만 IGNORE_SPACE SQL 모드를 활성화하면 이 요구 조건이 완화되어, 함수 이름과 괄호 사이에 공백이 있어도 정상적으로 처리됩니다.

활성화 후의 동작 예시

예를 들어, IGNORE_SPACE SQL 모드를 켠 다음에는 아래 두 가지 함수 호출 방식이 모두 유효합니다.

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

주의해야 할 점

다만 이 모드에서는 파서가 함수 이름을 예약어(reserved word)로 취급한다는 점에 유의해야 합니다. 이는 함수 이름 뒤에 공백이 올 경우, 해당 이름이 더 이상 테이블명이나 컬럼명 같은 식별자(identifier)로 인식되지 않는다는 의미입니다.

따라서 IGNORE_SPACE 모드를 사용하면 함수 호출 시 공백의 자유로움은 얻을 수 있지만, 함수와 동일한 이름을 가진 테이블이나 컬럼을 참조할 때 충돌이 발생할 수 있으므로 주의해서 사용해야 합니다.