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 |
---|