sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer SLEEP() i MariaDB

I MariaDB, SLEEP() er en indbygget funktion, der går i dvale (pause) i det antal sekunder, der er angivet af dens argument.

Hvis den ikke afbrydes, returnerer den 0 , hvis den afbrydes, returnerer den 1 .

Syntaks

Syntaksen ser sådan ud:

SLEEP(duration)

Hvor duration er det antal sekunder, du vil have funktionen til at sove i. Dette kan omfatte mikrosekunder.

Eksempel 1

Her er et eksempel til demonstration:

SELECT SLEEP(3);

Resultat:

+----------+
| SLEEP(3) |
+----------+
|        0 |
+----------+
1 row in set (3.005 sec)

I dette tilfælde lykkedes operationen uden afbrydelse, og derfor 0 blev returneret.

Vi kan se, at operationen tog 3,005 sekunder at fuldføre (hvoraf 3 formodentlig var forårsaget af SLEEP() funktion).

Eksempel 2

Her er et andet eksempel, der bruger SLEEP() mellem to andre funktionskald:

SELECT CURTIME();
SELECT SLEEP(3);
SELECT CURTIME();

Resultat:

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)

Mikrosekunder

Som nævnt kan du inkludere mikrosekunder:

SELECT CURTIME(6);
SELECT SLEEP(3.555555);
SELECT CURTIME(6);

Resultat:

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)

Nul-argument

Kalder SLEEP() med null returnerer 0 uden pause:

SELECT SLEEP(null);

Resultat:

+-------------+
| SLEEP(null) |
+-------------+
|           0 |
+-------------+
1 row in set (0.000 sec)

Ugyldigt antal argumenter

Kalder SLEEP() uden argumenter, eller med det forkerte antal argumenter, resulterer det i en fejl:

SELECT SLEEP();

Resultat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'

Og:

SELECT SLEEP(1, 2);

Resultat:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SLEEP'

Bemærk, at sætninger, der bruger SLEEP() funktion er ikke sikre til replikering.


  1. Oracle-forespørgsel til at finde alle forekomster af et tegn i en streng

  2. Arbejde med MyISAM i MySQL

  3. IntegrityError duplikatnøgleværdi overtræder unik begrænsning - django/postgres

  4. Node.js og Microsoft SQL Server