Dans MariaDB, SLEEP()
est une fonction intégrée qui dort (pause) pendant le nombre de secondes spécifié par son argument.
S'il n'est pas interrompu, il renvoie 0
, s'il est interrompu, il renvoie 1
.
Syntaxe
La syntaxe ressemble à ceci :
SLEEP(duration)
Où duration
est le nombre de secondes pendant lesquelles vous voulez que la fonction se mette en veille. Cela peut inclure des microsecondes.
Exemple 1
Voici un exemple pour illustrer :
SELECT SLEEP(3);
Résultat :
+----------+ | SLEEP(3) | +----------+ | 0 | +----------+ 1 row in set (3.005 sec)
Dans ce cas, l'opération a réussi sans interruption, donc 0
a été renvoyé.
Nous pouvons voir que l'opération a pris 3,005 secondes (dont 3 probablement causées par le SLEEP()
fonction).
Exemple 2
Voici un autre exemple qui utilise SLEEP()
entre deux autres appels de fonction :
SELECT CURTIME();
SELECT SLEEP(3);
SELECT CURTIME();
Résultat :
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)
Microsecondes
Comme mentionné, vous pouvez inclure des microsecondes :
SELECT CURTIME(6);
SELECT SLEEP(3.555555);
SELECT CURTIME(6);
Résultat :
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)
Argument nul
Appel de SLEEP()
avec null
renvoie 0
sans pause :
SELECT SLEEP(null);
Résultat :
+-------------+ | SLEEP(null) | +-------------+ | 0 | +-------------+ 1 row in set (0.000 sec)
Nombre d'arguments invalide
Appel de SLEEP()
sans arguments, ou avec un nombre d'arguments erroné, génère une erreur :
SELECT SLEEP();
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Et :
SELECT SLEEP(1, 2);
Résultat :
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'
Notez que les instructions utilisant SLEEP()
fonction ne sont pas sûrs pour la réplication.