백엔드 개발자 블로그

MySQL procedure 본문

SSAFY/계절학기

MySQL procedure

backend-dev 2024. 12. 23. 15:28

1. 저장 프로시저 생성

저장 프로시저는 `CREATE PROCEDURE` 문을 사용해 생성됩니다.

기본 문법:

sql코드 복사CREATE PROCEDURE 프로시저이름([매개변수])
BEGIN
    -- SQL 문들
END;
  • `프로시저이름`: 저장 프로시저의 이름.
  • `[매개변수]`: 저장 프로시저에 전달할 입력값, 출력값 등을 정의.
  • `BEGIN ... END`: 실행할 SQL 블록을 묶음.

2. 매개변수

저장 프로시저는 매개변수를 사용할 수 있습니다:

  • **IN**: 호출 시 값을 입력받아 사용.
  • **OUT**: 프로시저 실행 후 값을 반환.
  • **INOUT**: 입력과 출력으로 모두 사용.

예시:

sql코드 복사CREATE PROCEDURE ExampleProcedure(IN name VARCHAR(50), OUT count INT)
BEGIN
    SELECT COUNT(*) INTO count
    FROM Users
    WHERE username = name;
END;

3. 호출 방법

저장 프로시저는 `CALL` 문을 사용해 실행합니다.

예시:

sql코드 복사CALL ExampleProcedure('Alice', @user_count);
SELECT @user_count; -- OUT 매개변수 값 확인

4. DELIMITER 사용

MySQL에서는 기본 명령 구분자가 `;`입니다. 하지만 저장 프로시저를 만들 때는 명령 구분자를 변경해야 합니다.

이유:

  • 저장 프로시저 내부에 여러 개의 SQL 문이 포함될 수 있기 때문.

사용 방법:

DELIMITER //

CREATE PROCEDURE MyProcedure()
BEGIN
    SELECT 'Hello, World!';
END //

DELIMITER ;

5. 삭제 방법

저장 프로시저를 삭제하려면 `DROP PROCEDURE` 문을 사용합니다.

예시:

DROP PROCEDURE IF EXISTS MyProcedure;

6. 주의 사항

  • 저장 프로시저 이름은 고유해야 합니다.
  • 저장 프로시저 내부에서 실행할 SQL 문은 MySQL이 지원하는 모든 문법을 사용할 수 있습니다.
  • 권한 문제가 발생할 수 있으니, 프로시저를 생성하거나 실행하려면 적절한 권한이 필요합니다.

'SSAFY > 계절학기' 카테고리의 다른 글

MySQL Event Scheduler  (0) 2024.12.24