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

MySQL에서 특정 데이터베이스에 저장된 루틴의 이름과 유형만 조회하는 방법

특정 데이터베이스의 루틴 이름과 유형만 확인하기

MySQL에서 특정 데이터베이스에 저장된 저장 프로시저(PROCEDURE)와 함수(FUNCTION)의 이름유형만 간단히 확인하고 싶다면 다음과 같은 쿼리를 작성하면 됩니다.

여기서는 이해를 돕기 위해 'query'라는 이름의 데이터베이스를 예시로 사용하겠습니다.

mysql> Select Name, Type from mysql.proc where db = 'query';
+------------+-----------+
| Name       | Type      |
+------------+-----------+
| allrecords | PROCEDURE |
| Hello      | FUNCTION  |
+------------+-----------+
2 rows in set (0.18 sec)

쿼리 설명

위 쿼리는 MySQL 시스템 테이블인 mysql.proc에서 db 컬럼 값이 'query'인 행들을 대상으로, 루틴의 이름(Name)과 유형(Type) 두 컬럼만 선택하여 출력합니다.

  • Name: 저장 프로시저 또는 함수의 이름
  • Type: 루틴의 종류 (PROCEDURE 또는 FUNCTION)

실행 결과를 보면 'query' 데이터베이스에는 allrecords라는 저장 프로시저와 Hello라는 함수가 등록되어 있는 것을 확인할 수 있습니다.

참고 사항

mysql.proc 테이블은 MySQL 5.7까지 사용되던 방식입니다. MySQL 8.0부터는 해당 테이블이 제거되었으므로, 최신 버전에서는 information_schema.ROUTINES 뷰를 사용하는 것이 좋습니다.

mysql> SELECT ROUTINE_NAME, ROUTINE_TYPE
    -> FROM information_schema.ROUTINES
    -> WHERE ROUTINE_SCHEMA = 'query';

이 방법을 사용하면 MySQL 버전에 관계없이 특정 데이터베이스에 저장된 모든 루틴의 이름과 유형을 손쉽게 조회할 수 있습니다.