In MariaDB, SLEEP()
is een ingebouwde functie die slaapt (pauzeert) gedurende het aantal seconden gespecificeerd door zijn argument.
Indien ononderbroken, retourneert het 0
, indien onderbroken, retourneert het 1
.
Syntaxis
De syntaxis gaat als volgt:
SLEEP(duration)
Waar duration
is het aantal seconden dat u de functie wilt laten slapen. Dit kan microseconden bevatten.
Voorbeeld 1
Hier is een voorbeeld om te demonstreren:
SELECT SLEEP(3);
Resultaat:
+----------+ | SLEEP(3) | +----------+ | 0 | +----------+ 1 row in set (3.005 sec)
In dit geval is de bewerking zonder onderbreking gelukt, en dus 0
is teruggestuurd.
We kunnen zien dat de bewerking 3.005 seconden in beslag nam (waarvan 3 vermoedelijk werden veroorzaakt door de SLEEP()
functie).
Voorbeeld 2
Hier is nog een voorbeeld dat SLEEP()
. gebruikt tussen twee andere functie-aanroepen:
SELECT CURTIME();
SELECT SLEEP(3);
SELECT CURTIME();
Resultaat:
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)
Microseconden
Zoals vermeld, kunt u microseconden opnemen:
SELECT CURTIME(6);
SELECT SLEEP(3.555555);
SELECT CURTIME(6);
Resultaat:
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)
Nullargument
SLEEP()
. aanroepen met null
retourneert 0
zonder pauze:
SELECT SLEEP(null);
Resultaat:
+-------------+ | SLEEP(null) | +-------------+ | 0 | +-------------+ 1 row in set (0.000 sec)
Ongeldig aantal argumenten
SLEEP()
. aanroepen zonder argumenten, of met het verkeerde aantal argumenten, resulteert in een fout:
SELECT SLEEP();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
En:
SELECT SLEEP(1, 2);
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Merk op dat uitspraken met de SLEEP()
functie zijn niet veilig voor replicatie.