sql >> Databáze >  >> RDS >> MariaDB

Jak SLEEP() funguje v MariaDB

V MariaDB, SLEEP() je vestavěná funkce, která uspí (zastaví se) po dobu určenou jejím argumentem.

Pokud není přerušen, vrací 0 , pokud je přerušen, vrátí 1 .

Syntaxe

Syntaxe vypadá takto:

SLEEP(duration)

Kde duration je počet sekund, po které chcete funkci uspat. To může zahrnovat mikrosekundy.

Příklad 1

Zde je příklad k demonstraci:

SELECT SLEEP(3);

Výsledek:

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

V tomto případě operace proběhla bez přerušení, takže 0 byl vrácen.

Vidíme, že dokončení operace trvalo 3,005 sekund (z nichž 3 byly pravděpodobně způsobeny SLEEP() funkce).

Příklad 2

Zde je další příklad, který používá SLEEP() mezi dvěma dalšími voláními funkce:

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

Výsledek:

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)

Mikrosekundy

Jak již bylo zmíněno, můžete zahrnout mikrosekundy:

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

Výsledek:

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)

Nulový argument

Volání SLEEP() s null vrátí 0 bez pauzy:

SELECT SLEEP(null);

Výsledek:

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

Neplatný počet argumentů

Volání SLEEP() bez argumentů nebo s nesprávným počtem argumentů vede k chybě:

SELECT SLEEP();

Výsledek:

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

A:

SELECT SLEEP(1, 2);

Výsledek:

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

Všimněte si, že příkazy používající SLEEP() funkce nejsou bezpečné pro replikaci.


  1. Kontingenční tabulky v MySQL

  2. Pochopení pohledů v SQL

  3. Import SSIS Excel Vynucení nesprávného typu sloupce

  4. Možné způsoby, jak opravit problém s poškozením metadat serveru SQL Server