Trong MariaDB, SLEEP()
là một hàm tích hợp có chức năng ngủ (tạm dừng) trong số giây được chỉ định bởi đối số của nó.
Nếu không bị gián đoạn, nó sẽ trả về 0
, nếu bị gián đoạn, nó sẽ trả về 1
.
Cú pháp
Cú pháp như sau:
SLEEP(duration)
Trong đó duration
là số giây bạn muốn hàm ở chế độ ngủ. Điều này có thể bao gồm micro giây.
Ví dụ 1
Dưới đây là một ví dụ để chứng minh:
SELECT SLEEP(3);
Kết quả:
+----------+ | SLEEP(3) | +----------+ | 0 | +----------+ 1 row in set (3.005 sec)
Trong trường hợp này, thao tác đã thành công mà không bị gián đoạn, và vì vậy 0
đã được trả lại.
Chúng tôi có thể thấy rằng thao tác này mất 3,005 giây để hoàn thành (3 trong số đó có lẽ là do SLEEP()
gây ra chức năng).
Ví dụ 2
Đây là một ví dụ khác sử dụng SLEEP()
ở giữa hai lệnh gọi hàm khác:
SELECT CURTIME();
SELECT SLEEP(3);
SELECT CURTIME();
Kết quả:
MariaDB [PetHouse]> SELECT CURTIME(); +-----------+ | CURTIME() | +-----------+ | 06:22:38 | +-----------+ 1 row in set (0.000 sec) MariaDB [PetHouse]> SELECT SLEEP(3); SELECT CURTIME(); +----------+ | SLEEP(3) | +----------+ | 0 | +----------+ 1 row in set (3.006 sec) MariaDB [PetHouse]> SELECT CURTIME(); +-----------+ | CURTIME() | +-----------+ | 06:22:41 | +-----------+ 1 row in set (0.000 sec)
Micro giây
Như đã đề cập, bạn có thể bao gồm micro giây:
SELECT CURTIME(6);
SELECT SLEEP(3.555555);
SELECT CURTIME(6);
Kết quả:
MariaDB [PetHouse]> SELECT CURTIME(6); +-----------------+ | CURTIME(6) | +-----------------+ | 06:25:41.010538 | +-----------------+ 1 row in set (0.000 sec) MariaDB [PetHouse]> SELECT SLEEP(3.555555); SELECT CURTIME(6); +-----------------+ | SLEEP(3.555555) | +-----------------+ | 0 | +-----------------+ 1 row in set (3.561 sec) MariaDB [PetHouse]> SELECT CURTIME(6); +-----------------+ | CURTIME(6) | +-----------------+ | 06:25:44.573544 | +-----------------+ 1 row in set (0.000 sec)
Đối số rỗng
Đang gọi SLEEP()
với null
trả về 0
không ngừng nghỉ:
SELECT SLEEP(null);
Kết quả:
+-------------+ | SLEEP(null) | +-------------+ | 0 | +-------------+ 1 row in set (0.000 sec)
Số lượng đối số không hợp lệ
Đang gọi SLEEP()
không có đối số hoặc với số đối số sai, dẫn đến lỗi:
SELECT SLEEP();
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Và:
SELECT SLEEP(1, 2);
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Lưu ý rằng các câu lệnh sử dụng SLEEP()
chức năng không an toàn để sao chép.