IT_Developers/MySQL
MYSQL - DELIMITER $$ 이란?
고코더
2022. 2. 8. 23:55
안녕하세요.
고코더 입니다.
DELIMITER $$
● 1. MySQL에서는 프로시저를 작성할때 약속처럼 처음과 끝에 나타나는 명령어가 있습니다. 바로 DELIMITER $$ 입니다. work bench에서 프로시저를 작성하면 자동으로 앞뒤에 붙여주기도 합니다. 그렇다면 이것의 용도는 무엇일까요?
DELIMITER $$
DROP procedure IF EXISTS `api`.`PROC`;
CREATE PROCEDURE PROC()
BEGIN
SELECT '1','2','3';
END$$
DELIMITER ;
Delimiter 의미
● 2. Delimiter는 번역하면 '구분 문자 입니다. ' 일반 텍스트 또는 데이터 스트림에서 별도의 독립적 영역 사이의 경계를 지정하는 데 사용하는 하나의 문자 혹은 문자들의 배열등을 말한다고 합니다.
Delimiter 필요한 이유
● 3. 만약 해당 명령어 없이 프로시저를 작성하면 세미콜론으로 끝나는 SQL 부분이 나눠져 서버로 보내집니다. 다시 말하면 Delimiter 없이 이렇게 프로시저를 짠다면 IF 2 > 1THEN; 따로 select '1'; 따로 END IF; 따로 보내져서 어디부터 어디까지가 프로시저인지 구문을 하지 못합니다.
CREATE PROCEDURE PROC()
BEGIN
IF 2 > 1THEN;
select '1';
END IF;
END$$
DELIMITER ;
Delimiter 사용법
● 4. 그렇기 떄문에 프로시저를 작성할때는 항상 첫줄에는 DELIMITER $$를 선언하고 END에는 $$으로 프로시저 끝나는 부분을 표시하고 마지막에는 구분문자가 끝나는 DELIMITER ;를 선언해서 사용하시면 됩니다.
DELIMITER $$
CREATE PROCEDURE PROC()
BEGIN
-- 내용()
END$$
DELIMITER ;