Delimiter란?

텍스트 또는 스트림에서 독립적 영역의 경계를 구분짓는 문자이다.

C나 Java의 세미콜론(';')이 이에 포함된다.

직역하면 '구분 문자' 라고 해석된다.

 

MySQL에서의 Delimiter?

SQL문의 프로시저에서 사용되는 세미콜론을 문장의 끝으로 해석하지 않도록 하는 방지책.

 

두 수를 더하는 프로시저가 있다고 가정.

문장의 끝에 세미콜론을 적어야 하는 프로시저 특징 때문에 SQL이 종료됐다고 착각.

CREATE PROCEDURE add(IN a int, IN b int, OUT result int)
BEGIN -- 프로시저 시작
	SET result = a + b;
END -- 프로시저 끝

 

이를 해결하기 위해 SQL 종료 문자를 세미콜론이 아닌 $$로 치환

 

delimiter $$ -- 구분자를 '$$'로 치환

CREATE PROCEDURE add(IN a int, IN b int, OUT result int)
BEGIN -- 프로시저 시작
	SET result = a + b;
END -- 프로시저 끝
$$ -- SQL 종료

delimiter ; -- 구분자를 다시 세미콜론으로 치환

 

'DB' 카테고리의 다른 글

[DB] 트리거(Trigger)  (0) 2024.05.27

+ Recent posts