MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как работи SLEEP() в MariaDB

В MariaDB, SLEEP() е вградена функция, която заспива (на пауза) за броя секунди, определен от нейния аргумент.

Ако е без прекъсване, връща 0 , ако бъде прекъснат, връща 1 .

Синтаксис

Синтаксисът е така:

SLEEP(duration)

Където duration е броят секунди, за които искате функцията да заспи. Това може да включва микросекунди.

Пример 1

Ето пример за демонстрация:

SELECT SLEEP(3);

Резултат:

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

В този случай операцията е успешна без прекъсване и така 0 беше върнат.

Можем да видим, че операцията отне 3,005 секунди за завършване (3 от които вероятно са причинени от SLEEP() функция).

Пример 2

Ето още един пример, който използва SLEEP() между две други извиквания на функции:

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

Резултат:

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)

Микросекунди

Както споменахме, можете да включите микросекунди:

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

Резултат:

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)

Нулев аргумент

Извикване на SLEEP() с null връща 0 без пауза:

SELECT SLEEP(null);

Резултат:

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

Невалиден брой аргументи

Извикване на SLEEP() без аргументи или с грешен брой аргументи, води до грешка:

SELECT SLEEP();

Резултат:

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

И:

SELECT SLEEP(1, 2);

Резултат:

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

Имайте предвид, че изрази, използващи SLEEP() функции не са безопасни за репликация.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да форматирате числа в MariaDB

  2. Съвети за мигриране от MySQL репликация към MySQL Galera Cluster 4.0

  3. Поправете „ГРЕШКА 1250 (42000):Таблица „...“ от един от SELECT не може да се използва в клаузата ORDER“ в MariaDB

  4. Как ADD_MONTHS() работи в MariaDB

  5. Magicbricks мигрира към MariaDB, за да поддържа своя голям трафик