개요
2025.02.26-[Database] Stored Procedure - 정의/호출에서 프로시저의 기본적인 정의와 사용 방법에 대해서 알아보았다. 이번 글에서는 프로시저에서 변수를 선언하고 사용하는 방법을 정리해둔다.
변수 선언
프로시저 내에서 사용할 변수는 DECLARE 문으로 선언한다.
DECLARE variable_name datatype(size);
-- 기본값 지정
DECLARE variable_name datatype(size) DEFAULT default_value;
-- 여러 변수 한 번에 선언
DECLARE variable_name, variable_name datatype(size) DEFAULT default_value;
변수를 선언했을 때의 초기값은 Null이다. 만약 선언과 동시에 초기화가 필요하다면 DEFAULT 키워드를 사용하여 지정할 수 있다.
또한 한 번에 여러 변수를 선언할 수 있다. 한 번에 선언한 변수는 모두 같은 데이터 타입과 같은 초기값을 가진다.
예시 )
CREATE PROCEDURE test_procedure(
)
BEGIN
DECLARE v1 VARCHAR(5);
DECLARE v2 VARCHAR(5) DEFAULT 'HELLO';
DECLARE v3, v4 INT DEFAULT 0;
SELECT v1, v2, v3, v4;
END
변수 대입
선언한 변수에 값을 대입할 때는 SET 또는 SELECT ~ INTO를 사용한다.
-- SET
SET variable_name = 'VALUE';
-- SELECT ~ INTO
SELECT VAL INTO variable_name
FROM table_name
SELECT ~ INTO를 사용하면 테이블을 활용해 처리한 scalar 값을 변수에 저장할 수 있다는 장점을 가진다.
예시 )
CREATE PROCEDURE thinq_care_aic.test_procedure(
)
BEGIN
DECLARE v1 VARCHAR(5);
DECLARE v2 DATETIME;
SET v1 = 'WORLD';
SELECT NOW() INTO v2;
SELECT v1, v2;
END
참고 문서
[MYSQL] 📚 스토어드 프로시저 & 스토어드 함수 사용법
728x90