sql >> データベース >  >> RDS >> MariaDB

MariaDBでのSLEEP()のしくみ

    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()を使用する別の例を次に示します。 他の2つの関数呼び出しの間に:

    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. 会議を最大限に活用するための7つの戦略

    2. ServiceBrokerを使用した非同期処理の概要

    3. Oracleでテーブル定義を取得する方法は?

    4. #1071-指定されたキーが長すぎました。キーの最大長は1000バイトです