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

MySQL 특정 데이터베이스의 저장 프로시저 목록과 상세 정보 조회 방법

MySQL에서는 SHOW PROCEDURE STATUS 문에 WHERE 조건을 결합하면, 특정 데이터베이스에 포함된 저장 프로시저(Stored Procedure)의 목록을 정의자, 생성일, 수정일 같은 다양한 부가 정보와 함께 한 번에 확인할 수 있습니다.

기본 쿼리 문법

SHOW PROCEDURE STATUS WHERE db = '데이터베이스명';

아래 예시는 'query'라는 데이터베이스에 등록된 저장 프로시저를 조회한 결과입니다. 명령문 끝에 \G를 붙이면 결과가 세로 형태로 출력되어 각 항목을 읽기가 훨씬 편리합니다.

mysql> SHOW PROCEDURE STATUS WHERE db = 'query'\G
*************************** 1. row ***************************
                  Db: query
                Name: allrecords
                Type: PROCEDURE
             Definer: root@localhost
            Modified: 2017-11-11 09:56:11
             Created: 2017-11-11 09:56:11
       Security_type: DEFINER
             Comment:
character_set_client: cp850
collation_connection: cp850_general_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.01 sec)

주요 출력 항목 설명

  • Db : 해당 프로시저가 속한 데이터베이스의 이름입니다.
  • Name : 저장 프로시저의 이름입니다.
  • Type : 루틴의 유형을 나타내며, 여기서는 PROCEDURE(저장 프로시저)입니다.
  • Definer : 프로시저를 생성한 계정 정보입니다(예: root@localhost).
  • Modified / Created : 각각 마지막 수정 일시와 최초 생성 일시를 의미합니다.
  • Security_type : 실행 시 적용되는 보안 방식으로 DEFINER 또는 INVOKER 값이 지정됩니다.
  • Comment : 프로시저 생성 시 함께 등록한 주석 내용입니다.
  • character_set_client / collation_connection : 클라이언트 문자셋과 연결 콜레이션 정보입니다.
  • Database Collation : 해당 데이터베이스의 기본 콜레이션입니다.

활용 팁

데이터베이스에 프로시저가 많다면 LIKE 연산자를 활용해 이름 기준으로 검색 범위를 좁힐 수 있습니다.

SHOW PROCEDURE STATUS WHERE db = 'query' AND Name LIKE 'all%';

이처럼 SHOW PROCEDURE STATUS는 단순히 프로시저 이름만 나열하는 것이 아니라, 관리와 유지보수에 필요한 메타 정보까지 함께 제공하므로 데이터베이스 운영 시 매우 유용하게 활용할 수 있습니다.