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;
🔗 출처
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 |