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

MySQL에서 특정 데이터베이스에 저장된 함수 목록과 상세 정보 확인하는 방법

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 테이블을 직접 조회하는 방법도 함께 활용할 수 있습니다.