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

MySQL에서 저장 프로시저·함수 정의 확인하는 방법

MySQL에서 저장 프로시저(Stored Procedure)나 함수(Function)의 정의를 확인하려면 SHOW 명령어를 사용하면 됩니다. 기본 문법은 다음과 같습니다.

SHOW CREATE PROCEDURE yourProcedureName;

저장 프로시저 생성 예제

문법을 제대로 이해하기 위해 실제로 프로시저를 하나 생성한 뒤 그 정의를 직접 확인해 보겠습니다. 먼저 'student' 테이블의 모든 레코드를 조회하는 간단한 저장 프로시저를 만들어 보겠습니다.

mysql> delimiter //
mysql> create procedure AllRecords()
    -> begin
    -> select *from student;
    -> end //
Query OK, 0 rows affected (0.24 sec)

저장 프로시저 호출하기

생성된 저장 프로시저는 CALL 명령어를 통해 호출할 수 있습니다.

mysql> delimiter ;
mysql> call AllRecords();

실행 결과는 다음과 같습니다.

+------+-------+
| id   | Name  |
+------+-------+
| 1    | John  |
| 2    | Bob   |
| 3    | Smith |
| 6    | John  |
+------+-------+
4 rows in set (0.14 sec)

Query OK, 0 rows affected (0.18 sec)

프로시저 정의 확인하기

이제 앞서 소개한 SHOW CREATE PROCEDURE 구문을 사용해 프로시저의 정의를 확인할 수 있습니다.

mysql> show create procedure AllRecords;

출력 결과는 다음과 같습니다.

+------------+--------------------------------------------+-----------------------------------------------------------------------+----------------------+----------------------+--------------------+
| Procedure  | sql_mode                                     | Create Procedure                                                         | character_set_client | collation_connection | Database Collation |
+------------+--------------------------------------------+-----------------------------------------------------------------------+----------------------+----------------------+--------------------+
| AllRecords | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION | CREATE DEFINER=`root`@`%` PROCEDURE `AllRecords`() begin select *from student;end | utf8      | utf8_general_ci      | utf8mb4_unicode_ci |
+------------+--------------------------------------------+-----------------------------------------------------------------------+----------------------+----------------------+--------------------+
1 row in set (0.00 sec)

결과를 보면 프로시저 이름뿐만 아니라 sql_mode 설정, 전체 CREATE 문, 클라이언트 문자셋, 연결 콜레이션, 데이터베이스 콜레이션까지 한 번에 확인할 수 있습니다. 이를 통해 해당 프로시저가 어떤 환경 설정으로 생성되었는지 파악하는 데 큰 도움이 됩니다.

저장 함수 정의 확인하기

저장 함수(Stored Function)의 정의를 확인할 때는 PROCEDURE 대신 FUNCTION 키워드를 사용하면 됩니다. 문법은 다음과 같습니다.

SHOW CREATE FUNCTION yourFunctionName;