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

MySQL 저장 프로시저 실행 지연 설정 방법 – SLEEP() 함수 활용하기

MySQL에서 트리거나 저장 프로시저의 실행에 지연 시간을 주고 싶다면 SLEEP() 함수를 사용하면 됩니다. SLEEP() 함수는 지정한 초(seconds)만큼 실행을 일시 정지하는 역할을 하며, 이를 프로시저 내부에 넣으면 원하는 만큼 실행 지연을 구현할 수 있습니다.

1. 지연 기능이 포함된 저장 프로시저 생성

먼저 SLEEP() 함수를 포함한 저장 프로시저를 만들어 보겠습니다. 아래 예제는 20초간 대기한 후 메시지를 출력하는 프로시저입니다.

mysql> DELIMITER //
mysql> CREATE PROCEDURE delayInMessage()
    -> BEGIN
    -> SELECT SLEEP(20);
    -> SELECT "AFTER SLEEPING 20 SECONDS, BYE!!!";
    -> END
    -> //
Query OK, 0 rows affected (0.30 sec)
mysql> DELIMITER ;

2. 저장 프로시저 호출하기

생성한 저장 프로시저는 CALL 명령어로 호출할 수 있습니다. 기본 문법은 다음과 같습니다.

CALL yourStoredProcedureName();

이제 위에서 만든 프로시저를 호출하여 실제 실행 지연이 적용되는지 확인해 보겠습니다.

mysql> call delayInMessage();

3. 실행 결과 확인

위 쿼리를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

+-----------+
| SLEEP(20) |
+-----------+
| 0         |
+-----------+
1 row in set (20.00 sec)

+------------------------------------+
| AFTER SLEEPING 20 SECONDS, BYE!!!  |
+------------------------------------+
| AFTER SLEEPING 20 SECONDS, BYE!!!  |
+------------------------------------+
1 row in set (20.01 sec)
Query OK, 0 rows affected (20.04 sec)

출력 결과를 보면 첫 번째 SLEEP(20) 구문에서 약 20초가 소요되었고, 전체 프로시저 실행에는 약 20.01초의 지연이 발생한 것을 확인할 수 있습니다. 이처럼 SLEEP() 함수를 활용하면 저장 프로시저나 트리거의 실행 타이밍을 손쉽게 제어할 수 있습니다.