I PostgreSQL kan du bruge pg_sleep_for()
funktion til at forsinke udførelse i et givet interval.
Det gør den aktuelle sessions proces i dvale, indtil det angivne interval er udløbet.
Søvnforsinkelsen vil være mindst så længe som angivet. Det kan dog være længere, afhængigt af faktorer såsom serverbelastning, samt din platforms effektive opløsning af dvaleintervallet.
Syntaks
Syntaksen ser sådan ud:
pg_sleep_for(interval)
Hvor interval
er et interval, der angiver intervallet, før processen fortsætter.
Eksempel
Her er et eksempel for at demonstrere dets brug.
\x
SELECT
clock_timestamp(),
pg_sleep_for('2 minutes 10 seconds'),
clock_timestamp(),
pg_sleep_for('1 minute 5 seconds'),
clock_timestamp();
Resultat (ved hjælp af lodret output):
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
Jeg brugte clock_timestamp()
i dette eksempel, fordi det ændres under udførelse af sætningen. Dette giver os mulighed for at se de opdaterede værdier, efterhånden som erklæringen skrider frem.
Jeg brugte udvidet display (nogle gange omtalt som "lodret output") i dette eksempel for at gøre det nemmere at se resultatet.
Du kan skifte udvidet visning i psql ved at bruge \x
.
Negative værdier
Angivelse af en negativ værdi vil resultere i, at sætningen kører med det samme.
SELECT
clock_timestamp(),
pg_sleep_for('-2 minutes 10 seconds'),
clock_timestamp(),
pg_sleep_for('-1 minute 5 seconds'),
clock_timestamp();
Resultat (ved hjælp af lodret output):
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