sql >> Database >  >> RDS >> MariaDB

Hoe SLEEP() werkt in MariaDB

In MariaDB, SLEEP() is een ingebouwde functie die slaapt (pauzeert) gedurende het aantal seconden gespecificeerd door zijn argument.

Indien ononderbroken, retourneert het 0 , indien onderbroken, retourneert het 1 .

Syntaxis

De syntaxis gaat als volgt:

SLEEP(duration)

Waar duration is het aantal seconden dat u de functie wilt laten slapen. Dit kan microseconden bevatten.

Voorbeeld 1

Hier is een voorbeeld om te demonstreren:

SELECT SLEEP(3);

Resultaat:

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

In dit geval is de bewerking zonder onderbreking gelukt, en dus 0 is teruggestuurd.

We kunnen zien dat de bewerking 3.005 seconden in beslag nam (waarvan 3 vermoedelijk werden veroorzaakt door de SLEEP() functie).

Voorbeeld 2

Hier is nog een voorbeeld dat SLEEP() . gebruikt tussen twee andere functie-aanroepen:

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

Resultaat:

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)

Microseconden

Zoals vermeld, kunt u microseconden opnemen:

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

Resultaat:

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)

Nullargument

SLEEP() . aanroepen met null retourneert 0 zonder pauze:

SELECT SLEEP(null);

Resultaat:

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

Ongeldig aantal argumenten

SLEEP() . aanroepen zonder argumenten, of met het verkeerde aantal argumenten, resulteert in een fout:

SELECT SLEEP();

Resultaat:

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

En:

SELECT SLEEP(1, 2);

Resultaat:

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

Merk op dat uitspraken met de SLEEP() functie zijn niet veilig voor replicatie.


  1. Een taakstap toevoegen aan een bestaande SQL Server Agent-taak (T-SQL)

  2. Waarschuwing:kan header-informatie niet wijzigen - headers zijn al per fout verzonden

  3. Fix "ERROR:ontbrekende FROM-clausule voor tabel" in PostgreSQL bij gebruik van UNION, BEHALVE of INTERSECT

  4. Afbeeldingen toewijzen aan structuurweergaveknooppunten