[MySql] HeidiSQL 에서 저장 프로시져 생성시 오류 날때.

in #zzan4 years ago

MySql 은 기본적으로 제공하는 그래픽 인터페이스가 없다보니 (있긴 한데 불편) 별도의 프로그램을 이용하는편이다. 그 경우 주로 사용하는 것이 " HeidiSQL "

이것 역시 불편하긴 하지만, 그래도 무료로 사용할 수 있는 것중엔 제일 낫다.

일반적으론 사용하는데 별 불편이 없는데 특이한 문제점이 하나 있다.

생성된 프로시저를 복사하기 위해 기존 프로시져의 "CREATE 코드" 를 사용하면 오류가 발생한다는 것. 


복사할 저장 프로시져를 선택하고 해당 프로시져의 생성 SQL 을 복사하여 쿼리창에서 실행하면 오류가 난다.

오픈 소스류 프로그램들이 대부분 그러하듯이 도대체 뭐가 문제인지는 모르겠지만 하여간 오류가 난다는 오류가 난다.

이 경우 쿼리에 문제가 없다면 실행 시킬 쿼리 상단에 "DELIMITER" 를 추가하는 것으로 해결된다.

주의할 점은 DELIMITER 다음에 "//" 를 썼다면 저장 프로시져의 끝에도 "//" 로 끝을 내야하고, "$$" 를 썼다면 저장프로시져 끝에도 "$$" 써야한다는 점이다.

DELIMITER 는 문장의 끝을 의미한다고 하는데, "DELIMITER //" 라고 쓴다면 "//" 까지가 한 문장이라는 의미라고 한다.


무슨 뜻인지 잘 모르겠지만, HeidiSQL 에서 쿼리에 이상이 없는데 저장 프로시져 생성시 오류가 날땐 DELIMITER 를 써보면 보통 해결이 된다.