V PostgreSQL můžete použít pg_sleep_for()
funkce pro zpoždění spuštění pro daný interval.
Přepne proces aktuální relace do režimu spánku, dokud neuplyne zadaný interval.
Zpoždění spánku bude nejméně tak dlouho, jak je uvedeno. Může však být delší v závislosti na faktorech, jako je zatížení serveru a také efektivní rozlišení intervalu spánku vaší platformy.
Syntaxe
Syntaxe vypadá takto:
pg_sleep_for(interval)
Kde interval
je interval, který určuje interval před pokračováním procesu.
Příklad
Zde je příklad, který demonstruje jeho použití.
\x
SELECT
clock_timestamp(),
pg_sleep_for('2 minutes 10 seconds'),
clock_timestamp(),
pg_sleep_for('1 minute 5 seconds'),
clock_timestamp();
Výsledek (při použití vertikálního výstupu):
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
Použil jsem clock_timestamp()
v tomto příkladu, protože se mění během provádění příkazu. To nám umožňuje vidět aktualizované hodnoty v průběhu příkazu.
V tomto příkladu jsem použil rozšířené zobrazení (někdy označované jako „vertikální výstup“), aby bylo snazší vidět výsledek.
Rozšířené zobrazení v psql můžete přepínat pomocí \x
.
Záporné hodnoty
Zadání záporné hodnoty bude mít za následek okamžité spuštění příkazu.
SELECT
clock_timestamp(),
pg_sleep_for('-2 minutes 10 seconds'),
clock_timestamp(),
pg_sleep_for('-1 minute 5 seconds'),
clock_timestamp();
Výsledek (při použití vertikálního výstupu):
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