DataBase/MariaDB & MySQL

[MySQL] Mysql에서 프로시저(procedure) 안에 사용된 문자열 검색하기

희랍인 조르바 2019. 1. 15. 22:27
Mysql에서 프로시저(procedure) 안에 사용된 문자열 검색하는 방법.md

사용하지 않는 것으로 보이는 프로시저(procedure)를 삭제하려는데, 그 프로시저가 다른 프로시저를 콜하고 있었다… 이걸 어떡하지. 이 개념이라면 사용하지 않는 것으로 보였던 프로시저도 다른 곳에서 콜하면 어떡하지라는 생각이 들었다.


그래서 찾은 방법은 아래와 같다.

SELECT
       ROUTINE_SCHEMA
     , ROUTINE_NAME
     , ROUTINE_DEFINITION
     , ROUTINE_TYPE
 FROM
       INFORMATION_SCHEMA.ROUTINES
WHERE
       ROUTINE_DEFINITION LIKE '%찾고자하는 문자열%'
  AND  ROUTINE_TYPE='PROCEDURE';

  • ROUTINE_SCHEMA : 스키마 명
  • ROUTINE_NAME : (여기서는) 프로시저 명
  • ROUTINE_DEFINITION : (여기서는) 프로시저 내용
  • ROUTINE_TYPE : 타입(예를 들어, PROCEDURE)

위와 같이 sql을 작성하면 찾고자하는 문자열이 사용된 프로시저를 모두 표시해준다.

끝.