특정 MySQL 데이터베이스의 저장 함수 목록 조회하기
MySQL에서 특정 데이터베이스에 저장된 함수(Stored Function)의 목록만 확인하고 싶다면 INFORMATION_SCHEMA.ROUTINES 테이블을 활용하면 됩니다. 이 테이블에는 저장 프로시저와 함수 등 모든 루틴 정보가 담겨 있으므로, ROUTINE_TYPE 조건을 'FUNCTION'으로 지정하면 함수 목록만 깔끔하게 필터링할 수 있습니다.
다음 쿼리를 사용하면 원하는 결과를 얻을 수 있습니다.
mysql> SELECT ROUTINE_TYPE, ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA = 'query' AND ROUTINE_TYPE = 'FUNCTION'//
+--------------+--------------------+
| ROUTINE_TYPE | ROUTINE_NAME |
+--------------+--------------------+
| FUNCTION | factorial |
| FUNCTION | Hello |
+--------------+--------------------+
2 rows in set (0.07 sec)
쿼리 구성 요소 설명
- ROUTINE_SCHEMA = 'query': 조회 대상이 되는 데이터베이스 이름을 지정합니다. 위 예제에서는 'query'라는 데이터베이스를 기준으로 조회했습니다.
- ROUTINE_TYPE = 'FUNCTION': 루틴 유형 중 함수만 선택하는 조건입니다. 이 조건을 생략하면 저장 프로시저(Procedure)까지 함께 조회되므로, 함수 목록만 보고 싶다면 반드시 포함해야 합니다.
- ROUTINE_TYPE, ROUTINE_NAME: 결과 화면에 루틴의 유형과 이름을 출력하는 컬럼입니다.
실행 결과를 보면 'query' 데이터베이스에는 'factorial'과 'Hello'라는 두 개의 저장 함수가 등록되어 있는 것을 확인할 수 있습니다. 이처럼 INFORMATION_SCHEMA.ROUTINES를 활용하면 데이터베이스별로 관리 중인 함수 현황을 손쉽게 파악할 수 있습니다.