Database

[MySQL] Stored Procedure - 변수

비번변경 2025. 3. 10. 12:03

개요

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

 

 

 

참고 문서

https://blog.duveen.me/13

[MYSQL] 📚 스토어드 프로시저 & 스토어드 함수 사용법

 

728x90