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

MySQL에서 특정 데이터베이스의 저장 프로시저 목록만 조회하는 방법

개요

MySQL에서는 INFORMATION_SCHEMA.ROUTINES 테이블을 활용하면 특정 데이터베이스에 존재하는 저장 프로시저(Stored Procedure) 목록만 손쉽게 확인할 수 있습니다. 이 테이블에는 해당 MySQL 서버에 등록된 모든 저장 프로시저와 저장 함수의 정보가 담겨 있기 때문에, 조건을 적절히 지정하면 원하는 결과만 추출할 수 있습니다.

저장 프로시저 목록 조회 쿼리

아래와 같이 INFORMATION_SCHEMA.ROUTINES를 조회하되, ROUTINE_SCHEMA 조건으로 대상 데이터베이스를 지정하고, ROUTINE_TYPE = 'PROCEDURE' 조건을 추가하면 저장 프로시저만 필터링됩니다.

mysql> SELECT ROUTINE_TYPE, ROUTINE_NAME FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA = 'query' AND ROUTINE_TYPE = 'PROCEDURE';

실행 결과 예시

'query'라는 이름의 데이터베이스에 대해 위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+--------------+------------------------+
| ROUTINE_TYPE | ROUTINE_NAME           |
+--------------+------------------------+
| PROCEDURE    | allrecords             |
+--------------+------------------------+
1 row in set (0.05 sec)

결과에서 볼 수 있듯이 'query' 데이터베이스에는 allrecords라는 이름의 저장 프로시저 하나가 등록되어 있습니다.

참고 사항

  • ROUTINE_SCHEMA: 프로시저가 속한 데이터베이스(스키마)의 이름입니다.
  • ROUTINE_TYPE: 'PROCEDURE'는 저장 프로시저를, 'FUNCTION'은 저장 함수를 의미합니다. 저장 함수 목록을 보고 싶다면 이 값을 'FUNCTION'으로 변경하면 됩니다.
  • SHOW 문을 사용하는 SHOW PROCEDURE STATUS WHERE Db = '데이터베이스명'; 방법도 있지만, INFORMATION_SCHEMA를 조회하는 방식이 더 세밀한 조건 검색과 정렬에 유리합니다.