Procedure

조상원·2025년 8월 2일

DB modeling

목록 보기
6/7

Stored Procedure

  • MariaDB에서 제공되는 프로그래밍 기능
  • 복잡한 쿼리문을 다시 입력할 필요 없이, 함수처럼 간단하게 호출할 수 있다.
  • 반복적 호출/사용
  • CREATE PROCEDURE 을 사용하여 생성
DELIMITER $$
CREATE PROCEDURE 프로시저이름
BEGIN
  -- SQL 프로그래밍 코드
END $$
DELIMITER ;

CALL 프로시저이름();
  • 함수 호출하듯이 CALL 하면 사용할 수 있음

  • BUT 프로시저는 값을 RETURN하는 개념이 없음

  • 매개 변수

  • 값을 전달 받기 위한 IIN

  • 값을 전달 하기 위한 OUT

매개 변수 사용

DELIMITER $$
CREATE PROCEDURE 프로시저이름 (
  IN|OUT 매개변수 데이터 유형,
  ...
)
BEGIN
  -- SQL 프로그래밍 코드
END $$
DELIMITER ;

CALL 프로시저이름([매개값, ...]);

조건문

IF 조건식 THEN
  실행 문장
ELSE
  실행 문장
END IF
CASE 
  WHEN 조건식 1 THEN 실행 문장 1
  WHEN 조건식 2 THEN 실행 문장 2
  ...
  [ELSE 실행 문장]
END CASE;

반복문

DELIMITER $$
CREATE PROCEDURE errorProc()
BEGIN
    DECLARE CONTINUE HANDLER FOR 1146 SELECT '테이블이 없어요ㅠㅠ' AS '메시지';
    SELECT * FROM noTable;
END $$
DELIMITER ;
CALL errorProc();

오류 처리

DELIMITER $$
CREATE OR REPLACE PROCEDURE errorProc()
BEGIN
	DECLARE CONTINUE HANDLER FOR 1146
		SELECT '테이블이 존재하지 않습니다' AS 'message'; 
	SELECT * FROM notable;
END$$
DELIMITER ;

CALL errorProc();

삭제

DROP PROCEDURE 프로시저이름;

0개의 댓글