DB

Mysql Procedure

Raconer 2024. 2. 3. 15:37
728x90

🛠️ MySQL Procedure (프로시저)

복수의 SQL 쿼리를 하나의 블록으로 묶어 실행할 수 있는 저장 프로시저입니다.
주로 중간 쿼리에서 오류가 발생할 경우 전체 작업을 롤백하거나, 복잡한 로직을 캡슐화하는 데 사용됩니다.


✅ 기본 문법

DELIMITER $$

CREATE PROCEDURE 프로시저명 (
    IN  in_param1   데이터타입,
    IN  in_param2   데이터타입,
    OUT out_param1  데이터타입
)
BEGIN
    DECLARE temp_var VARCHAR(45) DEFAULT NULL;

    -- 수행할 쿼리
    -- 예: SELECT, INSERT, UPDATE 등
    -- SET out_param1 = ...

END $$
DELIMITER ;

📝 설명

구문 의미
DELIMITER $$ 세미콜론(;) 대신 $$를 문장 종료자로 지정하여 내부 쿼리와 구분
CREATE PROCEDURE 새로운 프로시저 정의 시작
IN 입력 파라미터 (호출 시 외부에서 전달)
OUT 출력 파라미터 (호출 완료 후 외부로 반환)
DECLARE 내부 변수 선언
BEGIN ~ END 프로시저 실행 블록

📌 사용 예시

DELIMITER $$

CREATE PROCEDURE add_user (
    IN user_name VARCHAR(100),
    OUT new_id INT
)
BEGIN
    INSERT INTO users(name) VALUES (user_name);
    SET new_id = LAST_INSERT_ID();
END $$
DELIMITER ;
CALL add_user('John Doe', @id);
SELECT @id;

🔗 출처

realizers:티스토리

728x90

'DB' 카테고리의 다른 글

MongoDB 구성  (0) 2024.02.18
SQL VS NoSQL (MongoDB 공부 전 )  (0) 2024.02.18
Index Hint  (0) 2024.01.20
Mysql Trigger  (0) 2023.12.06
Redis 기본 명령어  (0) 2023.08.18