Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 저장 프로시저에서 사용자 변수 활용하는 방법

MySQL 저장 프로시저에서 사용자 변수란?

MySQL 저장 프로시저 내에서 사용자 변수(user variable)는 변수 이름 앞에 골뱅이 기호(@)를 붙여 참조합니다. 예를 들어 @A, @B와 같은 형태가 바로 사용자 변수입니다.

사용자 변수는 세션 범위(session scope)를 가지므로, 저장 프로시저가 종료된 이후에도 해당 세션에서는 값이 유지된다는 점을 기억해 두면 좋습니다.

사용자 변수 사용 예제

다음과 같이 저장 프로시저를 생성하여 사용자 변수를 선언하고 활용할 수 있습니다.

mysql> DELIMITER // ;
mysql> CREATE PROCEDURE Proc_Uservariables()
    -> BEGIN
    -> SET @A = 100;
    -> SET @B = 500;
    -> SELECT @A, @B, @A+@B;
    -> END //
Query OK, 0 rows affected (0.00 sec)

mysql> Delimiter ; //
mysql> CALL Proc_Uservariables();
+------+------+-------+
| @A   | @B   | @A+@B |
+------+------+-------+
|  100 |  500 |   600 |
+------+------+-------+
1 row in set (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

예제 설명

위 프로시저의 동작 과정은 다음과 같습니다.

  • SET @A = 100; — 사용자 변수 @A에 100을 할당합니다.
  • SET @B = 500; — 사용자 변수 @B에 500을 할당합니다.
  • SELECT @A, @B, @A+@B; — 두 변수의 값과 그 합계(600)를 결과로 반환합니다.

이처럼 @ 접두어만 붙이면 별도의 선언 없이 즉시 변수를 사용할 수 있으며, 저장 프로시저 안에서 계산 결과를 임시로 보관하거나 여러 문장 간에 값을 전달할 때 유용하게 활용됩니다.