본문 바로가기
IT_Developers/MySQL

MYSQL - DELIMITER $$ 이란?

by 고코더 2022. 2. 8.

안녕하세요.

고코더 입니다.

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 ;


   

댓글