Skapa en Temp-tabell i PostgreSQL

introduktion

När du arbetar med stora tabeller i PostgreSQL kan det hända att du behöver interagera med en viss delmängd rader i en tabell om och om igen. Istället för att upprepade gånger filtrera tabellen för att få den delmängden data är det effektivare att hämta dessa rader en gång och lagra dem i en tillfällig tabell. Denna handledning lär dig hur du skapar ett tempbord och senare tar bort det när du är klar.

förutsättningar

Om du vill följa med PostgreSQL-exemplen i denna handledning, se till att du har PostgreSQL server installerad och konfigurerad på din maskin. Tjänsten måste köras i bakgrunden.

Linux-och Windows-användare kan ladda ner PostgreSQL här.

Vad är en PostgreSQL tillfällig tabell?

tillfälliga tabeller finns i deras eget unika schema, så du kan inte tilldela ett schemanamn när du skapar den här typen av tabell. En tillfällig tabell finns bara så länge som dess databassession– det betyder att PostgreSQL automatiskt släpper den tillfälliga tabellen i slutet eller en transaktion eller en session.

exempel på användningsfall för en PostgreSQL temporär tabell

temporära tabeller är användbara för applikationsutvecklare och databasadministratörer som interagerar med stora databaser regelbundet. De är särskilt värdefulla i situationer som kräver upprepad fråga eller bearbetning av en liten delmängd data i en större tabell.

i det här fallet kan vi lagra de filtrerade data i den tillfälliga tabellen; vi kan sedan använda den här tillfälliga tabellen om och om igen utan att gå till själva databasen. Dessa tabeller finns i tempdb, som också är ett databassystem.

Det finns två sätt att skapa en tillfällig tabell. Först kan vi använda TEMPORARY – klausulen i CREATE TABLE – uttalandet:

1
2
3
skapa tillfällig tabell your_temp_table_name(
);

Alternativt kan vi använda TEMP – klausulen:

1
2
3
skapa TEMP tabell your_temp_table_name (

);

tillfälliga tabeller är bara synliga i den session där den skapades; inga andra sessioner kommer att kunna visa den.

skapa ett tillfälligt Tabellexempel

för att skapa en tillfällig tabell måste vi först ansluta till vår PostgreSQL-server med kommandot psql. Sedan skapar vi en databas med namnet dbsandbox.

vi kan åstadkomma detta med hjälp av följande uttalande:

1
2
3
4
postgres= # skapa databas sandboxdb;
skapa databas
postgres=# \C sandboxdb;
du är nu ansluten till databasen ”sandboxdb” som användare ”teamsolo”.

När databasen har skapats är det dags att skapa vår tillfälliga tabell med följande uttalande:

1
2
sandboxdb= # skapa TEMPBORD temptbl (en INT);
Skapa tabell

Med detta uttalande skapade vi vår TEMP – tabell med namnet temptbl i databasen sandboxdb.

för att verifiera att tabellen har skapats kan vi använda ett SELECT – uttalande:

1
välj * från temptbl;

resultatet av vår SELECT ska se ut som följande:

1
2
3
c

(0 rader)

tidigare i det här avsnittet nämnde vi att en tillfällig tabell endast är synlig för den aktuella sessionen där den skapades. Låt oss testa och se om det är sant genom att skapa en annan session i PostgreSQL. I den här nya sessionen försöker vi ansluta till temptable. För att göra detta, avsluta först den aktuella anslutningen med kommandot \q och försök sedan ansluta igen med föregående steg. Ett exempel på denna process visas nedan:

1
2
3
4
5
postgres= # \ C sandboxdb;
du är nu ansluten till databasen ”sandboxdb” som användare ”teamsolo”.
sandboxdb= # SELECT * från temptbl;
fel: relation ”temptbl” existerar inte
rad 1: Välj * från temptbl;

Observera att vi fick ett fel när vi försökte utföra åtgärden SELECT mot den tillfälliga tabellen temptbl. Detta inträffar eftersom temptbl omedelbart tappades av PostgreSQL så snart vi körde kommandot \q och avslutade den specifika sessionen.

ta bort ett tillfälligt Tabellexempel

i föregående avsnitt lärde vi oss hur man skapar en tillfällig tabell. Låt oss nu prata om hur man tar bort eller släpper ett tillfälligt bord.

nedan visas syntaxen som används för att släppa en tillfällig tabell:

1
släpp tabell your_temp_table_name;

Lägg märke till att DROP TABLE – uttalandet inte har klausuler som TEMPORARY och TEMP, till skillnad från CREATE TABLE – uttalandet.

låt oss säga att vi ville släppa temptbl under sin session-vi kan göra det med följande uttalande:

1
sandboxdb= # släpp tabell temptbl;

slutsats

Det råder ingen tvekan om att tillfälliga tabeller kan hjälpa dig att optimera dina databasinteraktioner, så att du kan lagra en mindre delmängd rader från en större tabell istället för att filtrera samma data om och om igen. I denna handledning förklarade vi hur man skapar en temp-tabell och hur man släpper en med CREATE TEMP TABLE och DROP TABLE – uttalandena. Med hjälp av de exempel som vi tillhandahöll som en guide kan du skapa och hantera tillfälliga tabeller för dina egna databasinteraktioner.

Lämna ett svar

Din e-postadress kommer inte publiceras.