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.