MySQL 구분 기호는 세미콜론(;)이 있는 파이프 구분 기호(|)를 사용하고 MySQL 버전 8.0.12 미만을 사용할 때 발생합니다.
MySQL은 파이프(|)를 하나의 구분 기호로 취급하고 세미콜론(;)은 또 다른 구분 기호로 취급합니다. 따라서 MySQL 구분 기호를 파이프 및 세미콜론과 혼동하지 마십시오.
참고 :여기서는 MySQL 버전 8.0.12를 사용하고 있습니다. 파이프 구분 기호는 세미콜론과 함께 잘 작동합니다. 8.0.12 미만 버전을 사용하는 경우 구분자 오류가 발생합니다.
다음은 MySQL 구분 기호의 작동입니다.
mysql> delimiter |; mysql> create procedure getSumOfTwoNumbers() -> begin -> select 2+3 as TotalValue; -> end ; -> |; Query OK, 0 rows affected (0.17 sec) mysql> delimiter ;
이제 call 명령을 사용하여 저장 프로시저를 호출합니다. 쿼리는 다음과 같습니다.
mysql> call getSumOfTwoNumbers();호출
다음은 출력입니다.
+------------+ | TotalValue | +------------+ | 5 | +------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
MySQL에서 세미콜론은 MySQL에서 명령문의 끝을 알려주는 기본 구분 기호이기 때문에 세미콜론으로 위의 파이프 구분 기호를 달성하지 마십시오. 따라서 여러 문장을 작성할 때 MySQL 저장 프로시저에서 되돌리기 위해 세미콜론을 사용할 수 있습니다.
다음은 구분자 변경의 예입니다.
먼저 파이프 구분 기호(|)를 사용합니다. 구분자를 파이프로 설정하려면 다음 쿼리를 사용하십시오.
mysql> DELIMITER |
저장 프로시저를 생성하는 쿼리는 다음과 같습니다.
mysql> DELIMITER | mysql> create procedure Demo() -> begin -> select 2*3 as TotalMultiplication; -> end ; -> | Query OK, 0 rows affected (0.12 sec)
이제 세미콜론으로 구분 기호를 변경합니다. 구분자를 세미콜론으로 설정하려면 다음 쿼리를 사용하십시오.
쿼리는 다음과 같습니다.
mysql> delimiter ;