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

MySQL 저장 프로시저 소스 코드 확인 방법 – SHOW CREATE PROCEDURE 활용하기

SHOW CREATE PROCEDURE 문으로 저장 프로시저 소스 코드 확인하기

MySQL에서 특정 저장 프로시저(stored procedure)의 소스 코드를 확인하고 싶다면 SHOW CREATE PROCEDURE 문을 사용하면 됩니다. 이 구문은 해당 프로시저를 처음 생성할 때 작성했던 CREATE 문 전체를 그대로 출력해 주기 때문에, 프로시저의 정의를 검토하거나 다른 데이터베이스 환경으로 옮길 때 매우 유용합니다.

사용 예시

다음은 allrecords()라는 이름의 저장 프로시저 소스 코드를 조회하는 예제입니다. 쿼리 끝에 \G를 붙이면 결과가 세로 형태로 출력되어 긴 코드도 훨씬 읽기 편해집니다.

mysql> SHOW CREATE PROCEDURE allrecords\G
*************************** 1. row ***************************
Procedure: allrecords
sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Create Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `allrecords`()

BEGIN
Select * from Student_info;
END

character_set_client: cp850
collation_connection: cp850_general_ci
Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)

출력 결과 주요 항목 설명

  • Procedure: 조회한 프로시저의 이름입니다.
  • sql_mode: 프로시저가 생성될 당시 적용되어 있던 SQL 모드 설정 값입니다.
  • Create Procedure: DEFINER 정보를 포함한 실제 프로시저 생성 코드와 본문입니다.
  • character_set_client / collation_connection: 프로시저 생성 시 클라이언트에서 사용한 문자셋과 콜레이션 정보입니다.
  • Database Collation: 해당 데이터베이스의 기본 콜레이션입니다.

참고로 DEFINER 절은 프로시저 실행 권한을 판단하는 기준이 되는 계정을 나타냅니다. 따라서 프로시저를 다른 서버나 스키마로 마이그레이션할 경우에는 이 DEFINER 부분을 대상 환경에 맞게 수정해 주어야 할 수 있습니다.