프로시저 생성을 해야 하는데, 쉐어웨어로 쓰던 툴이 기간이 다되었다. 회사는 툴을 안사준다. 그래서 mysql Command tool를 사용중.

Command Tool 인 mysql로 로그인을 하면 사실 안되는건 없다. 불편할 뿐. 로컬에서 테스트를 다하고 실행만 해주면 되는 Create Procedure 구문을 Mysql Command에서 실행을 했더니 에러가 났다.

ERROR 1064 (42000): You have an error in your SQL syntax; 

에러의 원인은 쿼리명령어 구분자인 콜론(;)이다. MYSQL의 명려어구분자가 콜론인데, MySQL Command 의 라인 구분자도 콜론(;)이기 때문에 발생하는 오류이다.

여러줄로 되어있는 Create Procedure 문안에 있는 ; 를 만날때 이것을 MySQL Command 라인 실행 구분자 ; 로 착각해서 오류가 난다.

이럴때는 프로시저 문을 실행하는 동안 구분자를 잠시 다른걸로 바꿔주면 된다.

DELIMITER //
CREATE PROCEDURE someProcedure()
BEGIN
   SELECT count(some) as someCnt
   FROM someTable;
END //
DELIMITER ;

DELIMITER // 구문으로 구분자를 // 으로 변경한다. 그리고 END // 로 실행문을 완료시킨후 다시 DELIMITER ;구문으로 구분자를 ; 로 바꿔주면 된다.

이러면 컴멘드 라인에서 프로시저를 생성 할 수 있다.

2011/08/18 16:36 2011/08/18 16:36
Trackback address :: http://zziuni.pe.kr/zziuni/trackback/574

Comments List

Write a comment.

[로그인][오픈아이디란?]