In MariaDB, SLEEP()
ist eine integrierte Funktion, die für die durch ihr Argument angegebene Anzahl von Sekunden schläft (pausiert).
Wenn es nicht unterbrochen wird, gibt es 0
zurück , wenn es unterbrochen wird, gibt es 1
zurück .
Syntax
Die Syntax lautet wie folgt:
SLEEP(duration)
Wobei duration
ist die Anzahl der Sekunden, für die die Funktion schlafen soll. Dies kann Mikrosekunden umfassen.
Beispiel 1
Hier ist ein Beispiel zur Veranschaulichung:
SELECT SLEEP(3);
Ergebnis:
+----------+ | SLEEP(3) | +----------+ | 0 | +----------+ 1 row in set (3.005 sec)
In diesem Fall war die Operation ohne Unterbrechung erfolgreich, also 0
wurde zurückgegeben.
Wir können sehen, dass die Operation 3,005 Sekunden dauerte, bis sie abgeschlossen war (von denen 3 vermutlich durch SLEEP()
verursacht wurden Funktion).
Beispiel 2
Hier ist ein weiteres Beispiel, das SLEEP()
verwendet zwischen zwei anderen Funktionsaufrufen:
SELECT CURTIME();
SELECT SLEEP(3);
SELECT CURTIME();
Ergebnis:
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)
Mikrosekunden
Wie bereits erwähnt, können Sie Mikrosekunden einfügen:
SELECT CURTIME(6);
SELECT SLEEP(3.555555);
SELECT CURTIME(6);
Ergebnis:
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)
Null-Argument
Aufruf von SLEEP()
mit null
gibt 0
zurück ohne Pause:
SELECT SLEEP(null);
Ergebnis:
+-------------+ | SLEEP(null) | +-------------+ | 0 | +-------------+ 1 row in set (0.000 sec)
Ungültige Anzahl von Argumenten
Aufruf von SLEEP()
ohne Argumente oder mit der falschen Anzahl von Argumenten führt zu einem Fehler:
SELECT SLEEP();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Und:
SELECT SLEEP(1, 2);
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Beachten Sie, dass Anweisungen mit SLEEP()
Funktion sind für die Replikation nicht sicher.