I MariaDB, SLEEP() er en indbygget funktion, der går i dvale (pause) i det antal sekunder, der er angivet af dens argument.
Hvis den ikke afbrydes, returnerer den 0 , hvis den afbrydes, returnerer den 1 .
Syntaks
Syntaksen ser sådan ud:
SLEEP(duration)
Hvor duration er det antal sekunder, du vil have funktionen til at sove i. Dette kan omfatte mikrosekunder.
Eksempel 1
Her er et eksempel til demonstration:
SELECT SLEEP(3); Resultat:
+----------+ | SLEEP(3) | +----------+ | 0 | +----------+ 1 row in set (3.005 sec)
I dette tilfælde lykkedes operationen uden afbrydelse, og derfor 0 blev returneret.
Vi kan se, at operationen tog 3,005 sekunder at fuldføre (hvoraf 3 formodentlig var forårsaget af SLEEP() funktion).
Eksempel 2
Her er et andet eksempel, der bruger SLEEP() mellem to andre funktionskald:
SELECT CURTIME();
SELECT SLEEP(3);
SELECT CURTIME(); Resultat:
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)
Mikrosekunder
Som nævnt kan du inkludere mikrosekunder:
SELECT CURTIME(6);
SELECT SLEEP(3.555555);
SELECT CURTIME(6); Resultat:
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)
Nul-argument
Kalder SLEEP() med null returnerer 0 uden pause:
SELECT SLEEP(null); Resultat:
+-------------+ | SLEEP(null) | +-------------+ | 0 | +-------------+ 1 row in set (0.000 sec)
Ugyldigt antal argumenter
Kalder SLEEP() uden argumenter, eller med det forkerte antal argumenter, resulterer det i en fejl:
SELECT SLEEP(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Og:
SELECT SLEEP(1, 2); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Bemærk, at sætninger, der bruger SLEEP() funktion er ikke sikre til replikering.