MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como SLEEP() funciona no MariaDB


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.