V MariaDB, SLEEP() je vestavěná funkce, která uspí (zastaví se) po dobu určenou jejím argumentem.
Pokud není přerušen, vrací 0 , pokud je přerušen, vrátí 1 .
Syntaxe
Syntaxe vypadá takto:
SLEEP(duration)
Kde duration je počet sekund, po které chcete funkci uspat. To může zahrnovat mikrosekundy.
Příklad 1
Zde je příklad k demonstraci:
SELECT SLEEP(3); Výsledek:
+----------+ | SLEEP(3) | +----------+ | 0 | +----------+ 1 row in set (3.005 sec)
V tomto případě operace proběhla bez přerušení, takže 0 byl vrácen.
Vidíme, že dokončení operace trvalo 3,005 sekund (z nichž 3 byly pravděpodobně způsobeny SLEEP() funkce).
Příklad 2
Zde je další příklad, který používá SLEEP() mezi dvěma dalšími voláními funkce:
SELECT CURTIME();
SELECT SLEEP(3);
SELECT CURTIME(); Výsledek:
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)
Mikrosekundy
Jak již bylo zmíněno, můžete zahrnout mikrosekundy:
SELECT CURTIME(6);
SELECT SLEEP(3.555555);
SELECT CURTIME(6); Výsledek:
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)
Nulový argument
Volání SLEEP() s null vrátí 0 bez pauzy:
SELECT SLEEP(null); Výsledek:
+-------------+ | SLEEP(null) | +-------------+ | 0 | +-------------+ 1 row in set (0.000 sec)
Neplatný počet argumentů
Volání SLEEP() bez argumentů nebo s nesprávným počtem argumentů vede k chybě:
SELECT SLEEP(); Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
A:
SELECT SLEEP(1, 2); Výsledek:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Všimněte si, že příkazy používající SLEEP() funkce nejsou bezpečné pro replikaci.