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

MySQL 저장 함수의 소스 코드를 확인하는 방법 – SHOW CREATE FUNCTION 완벽 가이드

MySQL 저장 함수의 소스 코드 조회하기

MySQL에서 이미 생성해 둔 저장 함수(Stored Function)의 정의나 소스 코드를 다시 확인하고 싶을 때가 있습니다. 이럴 때 SHOW CREATE FUNCTION 문을 사용하면 해당 함수가 어떻게 작성되었는지 그대로 확인할 수 있습니다.

기본 문법

SHOW CREATE FUNCTION 함수이름;

함수 이름 뒤에 \G를 붙여 실행하면 결과가 세로 형태로 출력되어 긴 코드도 훨씬 읽기 편해집니다.

사용 예시

예를 들어, 문자열 앞에 "Hello, "를 붙여 반환하는 Hello()라는 저장 함수의 소스 코드를 확인한다고 가정해 보겠습니다.

mysql> SHOW CREATE FUNCTION Hello\G
*************************** 1. row ***************************

              Function: Hello
              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 Function: CREATE DEFINER=`root`@`localhost` FUNCTION `Hello`(S Varchar(20)) RETURNS varchar(20) CHARSET latin1 DETERMINISTIC
RETURN CONCAT('Hello, ',S,'!')

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

출력 결과 항목 설명

위 실행 결과에는 여러 가지 유용한 정보가 포함되어 있습니다.

  • Function: 조회한 저장 함수의 이름입니다.
  • sql_mode: 함수가 생성될 당시 서버에 적용되어 있던 SQL 모드 설정입니다.
  • Create Function: 실제 함수 생성 구문입니다. DEFINER(생성자), 매개변수, 반환 타입, DETERMINISTIC 여부 등이 모두 포함되어 있어, 이 구문을 그대로 복사하면 동일한 함수를 다른 데이터베이스에서 재현할 수 있습니다.
  • character_set_client / collation_connection: 함수 생성 시 클라이언트의 문자셋과 콜레이션 정보입니다.
  • Database Collation: 해당 데이터베이스의 기본 콜레이션입니다.

마무리

이처럼 SHOW CREATE FUNCTION 문은 저장 함수의 원본 정의를 손쉽게 확인할 수 있는 가장 간단하고 확실한 방법입니다. 백업용 스크립트를 만들거나, 기존 함수를 수정하기 전에 현재 정의를 검토할 때 특히 유용하게 활용할 수 있습니다. 참고로 저장 프로시저(Stored Procedure)의 경우에도 같은 방식으로 SHOW CREATE PROCEDURE 문을 사용하면 됩니다.