프로시저 생성을 해야 하는데, 쉐어웨어로 쓰던 툴이 기간이 다되었다. 회사는 툴을 안사준다. 그래서 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 ;구문으로 구분자를 ; 로 바꿔주면 된다.
이러면 컴멘드 라인에서 프로시저를 생성 할 수 있다.


Comments List