sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur pg_sleep_for() fungerar i PostgreSQL

I PostgreSQL kan du använda pg_sleep_for() funktion för att fördröja exekvering under ett givet intervall.

Det gör att den aktuella sessionens process vilar tills det angivna intervallet har förflutit.

Sömnfördröjningen kommer att vara minst så länge som anges. Det kan dock vara längre beroende på faktorer som serverbelastning, såväl som din plattforms effektiva upplösning av vilointervallet.

Syntax

Syntaxen ser ut så här:

pg_sleep_for(interval)

Där interval är ett intervall som anger intervallet innan processen fortsätter.

Exempel

Här är ett exempel för att demonstrera dess användning.

\x
SELECT 
  clock_timestamp(),
  pg_sleep_for('2 minutes 10 seconds'),
  clock_timestamp(),
  pg_sleep_for('1 minute 5 seconds'),
  clock_timestamp();

Resultat (med vertikal utdata):

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

Jag använde clock_timestamp() i det här exemplet, eftersom det ändras under körning av programsatsen. Detta gör att vi kan se de uppdaterade värdena allt eftersom uttalandet fortskrider.

Jag använde utökad display (ibland kallad "vertical output") i det här exemplet för att göra det lättare att se resultatet.

Du kan växla utökad visning i psql genom att använda \x .

Negativa värden

Om du anger ett negativt värde kommer satsen att köras omedelbart.

SELECT 
  clock_timestamp(),
  pg_sleep_for('-2 minutes 10 seconds'),
  clock_timestamp(),
  pg_sleep_for('-1 minute 5 seconds'),
  clock_timestamp();

Resultat (med vertikal utdata):

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

  1. Databashantering och övervakning för PostgreSQL 12

  2. ClusterControl CMON HA för distribuerad databas hög tillgänglighet - del två (GUI Access Setup)

  3. Enkelt citat, dubbelt citat och backticks i MySQL-frågor

  4. Ansluter Android till MS SQL SERVER 2008