I MariaDB, SLEEP()
är en inbyggd funktion som vilar (pausar) under det antal sekunder som anges av dess argument.
Om den inte avbryts returnerar den 0
, om den avbryts returnerar den 1
.
Syntax
Syntaxen ser ut så här:
SLEEP(duration)
Där duration
är antalet sekunder du vill att funktionen ska ligga i viloläge. Detta kan inkludera mikrosekunder.
Exempel 1
Här är ett exempel att visa:
SELECT SLEEP(3);
Resultat:
+----------+ | SLEEP(3) | +----------+ | 0 | +----------+ 1 row in set (3.005 sec)
I det här fallet lyckades operationen utan avbrott, och så 0
returnerades.
Vi kan se att operationen tog 3,005 sekunder att slutföra (av vilka tre förmodligen orsakades av SLEEP()
funktion).
Exempel 2
Här är ett annat exempel som använder SLEEP()
mellan två andra funktionsanrop:
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ämnts kan du inkludera 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)
Nollargument
Anropar SLEEP()
med null
returnerar 0
utan paus:
SELECT SLEEP(null);
Resultat:
+-------------+ | SLEEP(null) | +-------------+ | 0 | +-------------+ 1 row in set (0.000 sec)
Ogiltigt antal argument
Anropar SLEEP()
utan argument, eller med fel antal argument, resulterar i ett fel:
SELECT SLEEP();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Och:
SELECT SLEEP(1, 2);
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Observera att satser som använder SLEEP()
funktion är inte säkra för replikering.