SHOW FUNCTION STATUS로 저장된 함수 목록 조회하기
MySQL에서는 SHOW FUNCTION STATUS 문을 사용하면 특정 데이터베이스에 저장된 함수(Stored Function)의 목록을 정의자(Definer), 생성일, 수정일 등 다양한 메타 정보와 함께 한 번에 확인할 수 있습니다.
기본 쿼리 문법
아래와 같이 WHERE 절에 데이터베이스 이름을 지정하면 해당 데이터베이스에 속한 저장 함수만 필터링하여 조회할 수 있습니다.
mysql> SHOW FUNCTION STATUS WHERE db = 'query'\G
실행 결과 예시
'query'라는 이름의 데이터베이스에 대해 위 쿼리를 실행하면 다음과 같은 결과를 얻을 수 있습니다. \G 옵션을 사용하면 각 행이 세로 형태로 출력되어 가독성이 좋아집니다.
*************************** 1. row ***************************
Db: query
Name: factorial
Type: FUNCTION
Definer: root@localhost
Modified: 2021-11-16 14:04:48
Created: 2021-11-16 14:04:48
Security_type: DEFINER
Comment:
character_set_client: cp850
collation_connection: cp850_general_ci
Database Collation: latin1_swedish_ci
*************************** 2. row ***************************
Db: query
Name: Hello
Type: FUNCTION
Definer: root@localhost
Modified: 2017-11-12 11:42:31
Created: 2017-11-12 11:42:31
Security_type: DEFINER
Comment:
character_set_client: cp850
collation_connection: cp850_general_ci
Database Collation: latin1_swedish_ci
2 rows in set (0.16 sec)주요 출력 항목 설명
- Db: 함수가 속한 데이터베이스의 이름입니다.
- Name: 저장된 함수의 이름입니다. 위 예시에서는 'factorial'과 'Hello' 두 개의 함수가 조회되었습니다.
- Type: 객체 유형으로, 여기서는 FUNCTION(함수)임을 나타냅니다.
- Definer: 해당 함수를 생성한 사용자 계정입니다.
- Modified / Created: 함수가 마지막으로 수정된 시각과 처음 생성된 시각입니다.
- Security_type: 보안 실행 방식으로, DEFINER 또는 INVOKER 값이 표시됩니다.
- character_set_client / collation_connection: 클라이언트 문자셋과 연결 콜레이션 정보입니다.
- Database Collation: 해당 데이터베이스의 기본 콜레이션입니다.
참고 사항
WHERE 절을 생략하고 SHOW FUNCTION STATUS;만 실행하면 서버 전체의 모든 데이터베이스에 있는 함수 목록이 출력됩니다. 또한 LIKE 연산자를 활용해 SHOW FUNCTION STATUS LIKE '패턴'; 형태로 함수 이름 패턴 기준 검색도 가능합니다. 이 명령은 mysql 데이터베이스의 information_schema 뷰를 기반으로 동작하므로, 필요에 따라 information_schema.ROUTINES 테이블을 직접 조회하는 방법도 함께 활용할 수 있습니다.