In MariaDB, SLEEP()
è una funzione incorporata che dorme (mette in pausa) per il numero di secondi specificato dal suo argomento.
Se ininterrotto, restituisce 0
, se interrotto, restituisce 1
.
Sintassi
La sintassi è questa:
SLEEP(duration)
Dove duration
è il numero di secondi per i quali si desidera che la funzione rimanga inattiva. Questo può includere microsecondi.
Esempio 1
Ecco un esempio da dimostrare:
SELECT SLEEP(3);
Risultato:
+----------+ | SLEEP(3) | +----------+ | 0 | +----------+ 1 row in set (3.005 sec)
In questo caso, l'operazione è riuscita senza interruzioni, quindi 0
è stato restituito.
Possiamo vedere che l'operazione ha richiesto 3.005 secondi per essere completata (3 dei quali presumibilmente causati da SLEEP()
funzione).
Esempio 2
Ecco un altro esempio che utilizza SLEEP()
tra altre due chiamate di funzione:
SELECT CURTIME();
SELECT SLEEP(3);
SELECT CURTIME();
Risultato:
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)
Microsecondi
Come accennato, puoi includere microsecondi:
SELECT CURTIME(6);
SELECT SLEEP(3.555555);
SELECT CURTIME(6);
Risultato:
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)
Argomento nullo
Chiamando SLEEP()
con null
restituisce 0
senza una pausa:
SELECT SLEEP(null);
Risultato:
+-------------+ | SLEEP(null) | +-------------+ | 0 | +-------------+ 1 row in set (0.000 sec)
Numero di argomenti non valido
Chiamando SLEEP()
senza argomenti, o con il numero errato di argomenti, genera un errore:
SELECT SLEEP();
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
E:
SELECT SLEEP(1, 2);
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Nota che le istruzioni usano SLEEP()
funzione non sono sicure per la replica.