In PostgreSQL kunt u de pg_sleep_for()
functie om de uitvoering voor een bepaald interval te vertragen.
Het maakt het proces van de huidige sessie in de slaapstand totdat het gespecificeerde interval is verstreken.
De slaapvertraging is minstens zolang aangegeven. Het kan echter langer zijn, afhankelijk van factoren zoals serverbelasting en de effectieve resolutie van het slaapinterval van uw platform.
Syntaxis
De syntaxis gaat als volgt:
pg_sleep_for(interval)
Waar interval
is een interval dat het interval specificeert voordat het proces doorgaat.
Voorbeeld
Hier is een voorbeeld om het gebruik te demonstreren.
\x
SELECT
clock_timestamp(),
pg_sleep_for('2 minutes 10 seconds'),
clock_timestamp(),
pg_sleep_for('1 minute 5 seconds'),
clock_timestamp();
Resultaat (met verticale uitvoer):
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
Ik gebruikte clock_timestamp()
in dit voorbeeld, omdat het verandert tijdens de uitvoering van de instructie. Hierdoor kunnen we de bijgewerkte waarden zien naarmate het statement vordert.
Ik heb in dit voorbeeld een uitgebreide weergave gebruikt (soms "verticale uitvoer" genoemd) om het resultaat gemakkelijker te kunnen zien.
U kunt de uitgebreide weergave in psql schakelen met \x
.
Negatieve waarden
Als u een negatieve waarde opgeeft, wordt de instructie onmiddellijk uitgevoerd.
SELECT
clock_timestamp(),
pg_sleep_for('-2 minutes 10 seconds'),
clock_timestamp(),
pg_sleep_for('-1 minute 5 seconds'),
clock_timestamp();
Resultaat (met verticale uitvoer):
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