MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment SLEEP() fonctionne dans MariaDB

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)

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.