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.