En MariaDB, SLEEP()
es una función integrada que duerme (pausa) durante el número de segundos especificado por su argumento.
Si no se interrumpe, devuelve 0
, si se interrumpe, devuelve 1
.
Sintaxis
La sintaxis es así:
SLEEP(duration)
Donde duration
es el número de segundos que desea que la función duerma. Esto puede incluir microsegundos.
Ejemplo 1
Aquí hay un ejemplo para demostrarlo:
SELECT SLEEP(3);
Resultado:
+----------+ | SLEEP(3) | +----------+ | 0 | +----------+ 1 row in set (3.005 sec)
En este caso, la operación tuvo éxito sin interrupción, por lo que 0
fue devuelto.
Podemos ver que la operación tardó 3.005 segundos en completarse (3 de los cuales fueron presumiblemente causados por SLEEP()
función).
Ejemplo 2
Aquí hay otro ejemplo que usa SLEEP()
entre otras dos llamadas a funciones:
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 se mencionó, puede incluir microsegundos:
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
Llamando a SLEEP()
con null
devuelve 0
sin pausa:
SELECT SLEEP(null);
Resultado:
+-------------+ | SLEEP(null) | +-------------+ | 0 | +-------------+ 1 row in set (0.000 sec)
Número de argumentos no válido
Llamando a SLEEP()
sin argumentos, o con el número incorrecto de argumentos, da como resultado un error:
SELECT SLEEP();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Y:
SELECT SLEEP(1, 2);
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Tenga en cuenta que las declaraciones que usan SLEEP()
no son seguras para la replicación.