MySQL 저장 프로시저에서 이러한 유형의 오류를 방지하려면 구분 기호를 변경해야 합니다. //.
로저장 프로시저, 트리거 또는 함수를 사용하는 경우 구분 기호를 변경해야 한다고 가정합니다. 구문은 다음과 같습니다.
DELIMITER // CREATE PROCEDURE yourProcedureName() BEGIN Statement1, . . N END; // DELIMITER ;
위의 구문을 이해하기 위해 저장 프로시저를 만들어 보겠습니다. 저장 프로시저를 생성하는 쿼리는 다음과 같습니다. -
mysql> DELIMITER // mysql> CREATE PROCEDURE sp_getAllRecords() -> BEGIN -> SELECT *FROM employeetable; -> END; -> // Query OK, 0 rows affected (0.23 sec) mysql> DELIMITER ;
CALL 명령을 사용하여 저장 프로시저를 호출합니다. 구문은 다음과 같습니다.
CALL yourStoredProcedureName();
이제 Employee 테이블의 모든 레코드를 반환하는 위의 프로시저를 호출합니다. 쿼리는 다음과 같습니다.
mysql> CALL sp_getAllRecords();
다음은 출력입니다.
+------------+--------------+----------------+ | EmployeeId | EmployeeName | EmployeeSalary | +------------+--------------+----------------+ | 2 | Bob | 1000 | | 3 | Carol | 2500 | +------------+--------------+----------------+ 2 rows in set (0.00 sec) Query OK, 0 rows affected (0.02 sec)