PostgreSQLでは、pg_sleep_for()
を使用できます 指定された間隔で実行を遅らせる関数。
指定された間隔が経過するまで、現在のセッションのプロセスをスリープ状態にします。
睡眠の遅れは少なくとも 指定されている限り。ただし、サーバーの負荷や、プラットフォームのスリープ間隔の効果的な解決などの要因によっては、さらに長くなる可能性があります。
構文
構文は次のようになります:
pg_sleep_for(interval)
interval
プロセスが続行する前の間隔を指定する間隔です。
例
使用法を示す例を次に示します。
\x
SELECT
clock_timestamp(),
pg_sleep_for('2 minutes 10 seconds'),
clock_timestamp(),
pg_sleep_for('1 minute 5 seconds'),
clock_timestamp();
結果(垂直出力を使用):
clock_timestamp | 2020-06-28 15:14:26.53039+10 pg_sleep_for | clock_timestamp | 2020-06-28 15:16:36.595837+10 pg_sleep_for | clock_timestamp | 2020-06-28 15:17:41.671152+10
clock_timestamp()
を使用しました この例では、ステートメントの実行中に変更されるためです。これにより、ステートメントの進行に合わせて更新された値を確認できます。
この例では、結果を見やすくするために、拡張表示(「垂直出力」と呼ばれることもあります)を使用しました。
\x
を使用して、psqlの展開表示を切り替えることができます 。
負の値
負の値を指定すると、ステートメントがすぐに実行されます。
SELECT
clock_timestamp(),
pg_sleep_for('-2 minutes 10 seconds'),
clock_timestamp(),
pg_sleep_for('-1 minute 5 seconds'),
clock_timestamp();
結果(垂直出力を使用):
clock_timestamp | 2020-06-29 09:01:09.468232+10 pg_sleep_for | clock_timestamp | 2020-06-29 09:01:09.468291+10 pg_sleep_for | clock_timestamp | 2020-06-29 09:01:09.468297+10