MySQL/MariaDB 프로시저 생성, 수정, 삭제
-
Version : Mariadb 5.5.4.2-WinX64
스토어드 프로시저와 함수는 MySQL 5.0부터 추가된 기능이다. 프로시저를 포함한 스토어드 프로그램을 사용할 때에는 프로시저의 끝을 정확히 알 수 있도록 SQL의 구분자를 변경해 주어야 한다.
일반적으로 MySQL의 구분자는 ";" 문자가 프로그램의 끝을 의미한다. 하지만 스토어드 프로시저 내에서는 수 많은 ";"를 포함하므로 프로시저의 끝을 정확히 알 수가 없다. CREATE 명령의 끝을 정확히 판별 할 수 있도록 별도의 구분자를 문자열로 지정하여 사용한다.
명령의 끝을 알려주는 종료문자 변경은 DELIMITER 명령어를 사용한다. 아래 예제는 종료문자를 ";;" 변경한다.
DELIMITER ;; |
스토어드 프로시저 생성은 종료 문자를 변경해서 사용해야 하며 프로시저 생성 완료 후 종료문자를 기존의 값으로 변경한다.
DELIMITER ;; create procedure usp_2 (a int, b int) begin select a+b; end;; DELIMITER ; |
프로시저 호출은 call 명령을 사용한다. (SQL Server에서는 exec 를 사용한다.)
call usp_2 (1, 3); |
프로시저 수정은 ALTER 구문을 사용한다. ALTER 명령은 스토어드 프로시저에서 제공하는 보안 및 작동 방식과 관련된 특성을 수정할 때만 사용가능하다.
ALTER PROCEDURE usp_2 SQL SECURITY DEFINER; |
파라메터나 프로시저의 로직 처리 내용을 변경할 때에는 프로시저를 삭제하고 새로 생성해야 한다. 프로시저 삭제는 DROP 명령을 사용한다.
drop procedure usp_2; |
생성된 프로시저 목록은 SHOW PROCEDURE STATUS 명령어를 사용한다.
SHOW PROCEDURE STATUS; |
2015-05-07 / 강성욱 / http://sqlmvp.kr
MySQL, MariaDB, MySQL, MySQL 프로시저, MySQL 프로시저, MySQL 프로시저 삭제, MySQL 프로시저 수정, MySQL 프로시저 생성, MySQL 프로시저 목록
'MySQL, MariaDB' 카테고리의 다른 글
MySQL/MariaDB 제네럴 로그 파일 (General log file) (0) | 2015.07.16 |
---|---|
MySQL/MariaDB 에러로그파일 (0) | 2015.07.16 |
MySQL/MariaDB 서비스 시작, 종료 (0) | 2015.07.16 |
설정 파일 구성 (my.ini) 및 시스템 변수 확인 (0) | 2015.07.16 |
인덱스 생성 (0) | 2015.07.16 |