No MariaDB,
SLEEP() é uma função interna que dorme (pausa) pelo número de segundos especificado por seu argumento. Se ininterrupto, ele retorna
0 , se interrompido, retorna 1 . Sintaxe
A sintaxe fica assim:
SLEEP(duration) Onde
duration é o número de segundos que você deseja que a função durma. Isso pode incluir microssegundos. Exemplo 1
Segue um exemplo para demonstrar:
SELECT SLEEP(3); Resultado:
+----------+ | SLEEP(3) | +----------+ | 0 | +----------+ 1 row in set (3.005 sec)
Nesse caso, a operação foi bem-sucedida sem interrupção e, portanto,
0 foi devolvido. Podemos ver que a operação levou 3,005 segundos para ser concluída (3 dos quais provavelmente foram causados pelo
SLEEP() função). Exemplo 2
Aqui está outro exemplo que usa
SLEEP() entre duas outras chamadas de função:SELECT CURTIME();
SELECT SLEEP(3);
SELECT CURTIME(); Resultado:
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)
Microsegundos
Como mencionado, você pode incluir microssegundos:
SELECT CURTIME(6);
SELECT SLEEP(3.555555);
SELECT CURTIME(6); Resultado:
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)
Argumento nulo
Chamando
SLEEP() com null retorna 0 sem pausa:SELECT SLEEP(null); Resultado:
+-------------+ | SLEEP(null) | +-------------+ | 0 | +-------------+ 1 row in set (0.000 sec)
Número inválido de argumentos
Chamando
SLEEP() sem argumentos, ou com o número errado de argumentos, resulta em um erro:SELECT SLEEP(); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
E:
SELECT SLEEP(1, 2); Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Observe que as instruções usando o
SLEEP() função não são seguros para replicação.