MySQL에서 SET 명령으로 초기화(설정)된 모든 사용자 변수의 목록을 한눈에 확인하고 싶다면, performance_schema 데이터베이스의 user_variables_by_thread 테이블을 조회하면 됩니다. 이 테이블은 MySQL 5.7 버전부터 제공되며, 각 스레드(세션)별로 설정된 사용자 변수 정보를 담고 있습니다.
기본 문법
select * from performance_schema.user_variables_by_thread;
사용자 변수 설정하기
먼저 SET 명령을 사용해 사용자 변수를 생성해 보겠습니다.
mysql> set @FirstName='John'; Query OK, 0 rows affected (0.00 sec) mysql> set @LastName='Doe'; Query OK, 0 rows affected (0.00 sec)
설정된 변수 목록 조회하기
이제 위에서 설정한 변수들을 포함하여 현재 스레드에서 초기화된 모든 사용자 변수의 목록을 조회하는 쿼리는 다음과 같습니다.
mysql> select * from performance_schema.user_variables_by_thread;
실행 결과
+-----------+---------------+----------------+ | THREAD_ID | VARIABLE_NAME | VARIABLE_VALUE | +-----------+---------------+----------------+ | 120 | TotalAmount | 5000 | | 120 | FirstName | John | | 120 | lName | Smith | | 120 | fName | Adam | | 120 | LastName | Doe | +-----------+---------------+----------------+ 5 rows in set (0.00 sec)
결과 해석
조회 결과는 다음 세 개의 컬럼으로 구성됩니다.
- THREAD_ID: 해당 변수가 설정된 스레드(세션)의 ID
- VARIABLE_NAME: 사용자 변수의 이름 (@ 기호는 제외됨)
- VARIABLE_VALUE: 변수에 저장된 값
출력 결과를 보면 이전에 설정했던 @FirstName과 @LastName 변수뿐만 아니라, 같은 세션에서 설정된 다른 변수들(TotalAmount, lName, fName)까지 모두 함께 표시되는 것을 확인할 수 있습니다. 참고로 사용자 변수는 세션 단위로 관리되므로, 자신의 연결에서 설정한 변수만 조회됩니다.