PostgreSQL midlertidige bord

PostgreSQL midlertidige bord

PostgreSQL har pålitelige databasefunksjoner for håndtering av forskjellige transaksjoner. For eksempel lagrer den midlertidige tabellen data per gitt økt. Det finnes en midlertidig bord for en gitt økt og lukker den gitte økten eller prøver å spørre den samme midlertidige tabellen i en annen økt vil returnere en feil.

Dette innlegget vil guide deg i å forstå hvordan midlertidige tabeller fungerer. Vi lager et midlertidig bord, og prøver deretter å få tilgang til det fra en annen økt.

Arbeider med midlertidige bord i PostgreSQL

Før du jobber med et midlertidig bord i PostgreSQL, la oss forstå noen fakta.

  1. Det midlertidige bordet er bare synlig i en gitt økt. Andre transaksjoner eller databaser har ikke tilgang til en gitt transaksjon.
  2. Du kan ha en midlertidig tabell med samme navn som en permanent tabell i samme database.
  3. Når en midlertidig tabell deler samme navn som en permanent tabell, kan ikke den permanente tabellen få tilgang til før den midlertidige tabellen blir droppet fra databasen eller økt.

Her er syntaks for å lage en midlertidig tabell i PostgreSQL. Du kan bruke MIDLERTIDIG eller Temp nøkkelord for å opprette det.

# Opprett midlertidig tabell tabell_navn (kolonne_navn, datatype);


eller

# Opprett temp tabell tabell_navn (kolonne_navn, datatype);


I denne opplæringen lager vi en database, oppretter en midlertidig tabell og en permanent tabell. Prøv deretter å få tilgang til den samme midlertidige tabellen fra en annen økt for å forstå hvordan en midlertidig bord fungerer.

Få tilgang til PostgreSQL -konsollen din og opprett en database. La oss navngi vår Linuxhint.

# Opprett database Linuxhint1;



Du vil få bekreftelse på at databasen din ble opprettet med hell. Deretter kobler du til den opprettede databasen.

# \ c linuxhint1;



Lag et permanent bord. La oss nevne det navn.

# Opprett tabellnavn (Fname Varchar (100), Age Int);



La oss opprette en midlertidig tabell med samme navn, men forskjellige kolonner med vår permanente bord opprettet med samme navn, men forskjellige kolonner.

# Opprett midlertidige tabellnavn (etternavn varchar (100));



Vi kan bekrefte at databasen vår inneholder de to opprettede tabellene ved hjelp av \ dt kommando.


Du vil merke at bare en tabell er oppført som den midlertidige tabellen ikke er oppført. Imidlertid, hvis vi viser innholdet i den aktuelle tabellen, viser det innholdet i den midlertidige tabellen. Det permanente bordet er "tauset" til den midlertidige bordet blir droppet.


Anta at du åpner en annen PostgreSQL -økt og kobler til den opprettede databasen. Hvis du prøver å få tilgang til den midlertidige tabellen, vil den ikke eksistere. I stedet vil det faste bordet bli hentet ettersom det midlertidige tabellen bare eksisterer i økten der den ble opprettet.


I utgangen får vi innholdet i den permanente tabellen i strid med hva vi fikk da vi kjørte den samme kommandoen i økten som inneholder den midlertidige tabellen.

Likevel, hvis du slutter i den aktuelle økten, så kommer du tilbake senere, vil ikke den midlertidige tabellen eksisterer.

Prøv å slutte ved å kjøre \ q Kommando, og prøv deretter å få tilgang til den midlertidige tabellen. Det vil returnere en feil.

Sette inn verdier i en midlertidig tabell

Du kan sette inn verdier til en midlertidig tabell på samme måte som du setter dem inn på en permanent tabell.


Når du er satt inn, kan du bekrefte at den midlertidige tabellen inneholder de innsatte verdiene som forventet.

Slipper et midlertidig bord

Du kan bruke miste Kommando hvis du vil slette den midlertidige tabellen uten å vente på at den automatisk skal bli slettet når økten utløper.

Konklusjon

Midlertidige tabeller er tabeller laget i PostgreSQL med en kort levetid. Bordene er bare synlige i den aktuelle økten. Når du har avsluttet økten, blir bordet automatisk slettet. Likevel, hvis du åpner en annen økt og prøver å få tilgang til den midlertidige tabellen, vil den returnere en feil. Når du har en midlertidig og permanent tabell som deler samme navn, har du ikke tilgang til det permanente tabellen før du slipper den midlertidige tabellen.