PostgreSQL opprette database hvis ikke eksisterer

PostgreSQL opprette database hvis ikke eksisterer
Hver gang vi snakker om PostgreSQL, tenker vi alltid på databaser fordi det er et databasestyringssystem. Du kan opprette så mange databaser du ønsker på PostgreSQL -serveren din som du vil. Etter å ha opprettet en database etter eget valg, kan du opprette flere tabeller i den for å lagre dataene dine, og deretter kan du utføre forskjellige beregninger på disse dataene. Noen ganger ønsker vi imidlertid å kjøre et spørsmål om en eksisterende database, men for det er eksistensen av en slik database obligatorisk.

Det vi mener å si er at vi trenger en mekanisme for å sjekke om det finnes en database på vår PostgreSQL -server eller ikke. Dessuten er det noen situasjoner der vi ønsker at en database skal opprettes når vi kjører en spørring hvis den ikke allerede eksisterer på databaseserveren vår. I så fall kommer notasjonen "Create Database hvis ikke eksisterer". Denne guiden tar sikte på å introdusere deg for bruken av denne notasjonen med en kort diskusjon om PostgreSQL støtter denne notasjonen eller ikke. Etter det vil vi dele med deg et postgreSQL-støttet alternativ for denne notasjonen.

Kan vi bruke "Opprett database hvis ikke eksisterer" -notasjon i PostgreSQL i Windows 10?

Notasjonen "Create Database hvis ikke eksisterer" støttes av noen av programmeringsspråk. Ved hjelp av denne notasjonen kan du sjekke om det finnes en spesifisert database på databaseserveren din eller ikke, og hvis den ikke eksisterer, vil denne notasjonen ganske enkelt opprette den databasen på serveren din. La oss imidlertid spesifikt snakke om PostgreSQL. PostgreSQL støtter ikke denne notasjonen, eller med andre ord, kan du si at vi ikke kan bruke denne notasjonen direkte i PostgreSQL i Windows 10.

Likevel er det fremdeles noen måter som kan tillate deg å oppnå den samme funksjonaliteten som du kan oppnå med denne spesielle notasjonen. For å utforske mer om disse løsningene, må du fortsette å lese denne artikkelen.

Hvis ikke, så hvilken løsning kan vi bruke for å oppnå samme mål?

Siden "Opprett database hvis ikke eksisterer" -notasjon ikke kan brukes som den er innenfor PostgreSQL -miljøet, bestemte vi oss for å dele med deg en løsning som du kan oppnå samme funksjonalitet. For denne løsningen, må du utføre en litt annen variant av denne notasjonen i form av en PostgreSQL -spørring i Windows 10. For å forstå denne variasjonen, må du følge gjennom trinnene som er forklart nedenfor:

Merk: Ikke glem å logge deg på PostgreSQL -serveren din før du følger disse trinnene.

Trinn 1: Vise de eksisterende PostgreSQL -databasene i Windows 10:

Vi vet alle at vi bare ønsker å opprette en spesifikk database i PostgreSQL hvis den allerede finnes på serveren vår. Databasen som vi ønsker å bli opprettet i dette tilfellet er “MyNewdb”. Derfor vil vi først prøve å finne ut navnene på alle våre eksisterende PostgreSQL -databaser for å vite om en slik database allerede eksisterer på serveren vår eller ikke. For å vise navnene på alle eksisterende PostgreSQL -databaser, må du utføre følgende PostgreSQL -spørring i PSQL -konsollen:

# Velg Datname fra PG_Database;

Denne spørringen vil trekke ut "Datname" -attributtet fra PG_Database av vår PostgreSQL -server. Denne attributtet inneholder navnene på alle eksisterende databaser på PostgreSQL -serveren. "Select" -klæringen til PostgreSQL vil bare vise de ekstraherte databasenavnene på konsollen som vist på bildet nedenfor:

Du kan se fra utdataene vist på bildet over at det ikke finnes noen database med navnet "MyNewDB" på vår PostgreSQL -server; Derfor kan vi prøve å opprette en database med dette navnet på serveren vår i Windows 10.

Trinn 2: Opprette PostgreSQL -databasen hvis ikke finnes i Windows 10:

Nå, siden vi har sett at databasen som vi ønsker å opprette ikke allerede eksisterer på vår PostgreSQL -server, må vi derfor utføre følgende spørring for å opprette den databasen:

# Velg 'Opprett database MyNewDB' der det ikke eksisterer (velg fra PG_Database hvor DatName = 'MyNewdb') \ Gexec

Med denne spørringen oppretter vi en database som heter “MyNewDB” som ikke allerede var til stede på vår PostgreSQL -server på vårt Windows 10 -system. "Select" -uttalelsen i denne spørringen blir fulgt av "Create Database Statement". Etter det har vi nevnt navnet på vår nye database som skal opprettes. Du kan nevne det hva du vil. Deretter har vi skrevet uttalelsen "Where Not Exist" som vil sjekke om den spesifiserte databasen eksisterer på PostgreSQL -serveren eller ikke. Alle disse utsagnene blir fulgt av en sub-spørring der vi har en annen "Select FRO.

Endelig er det parameteren “\ gexec” som fullfører denne spørringen. Denne parameteren er ekstremt viktig i denne spørringen. Denne parameteren sender din nåværende spørringsbuffer til PostgreSQL -serveren, der hver komponent eller attributt til utdataene til denne spørringen blir behandlet som en SQL -spørring i stedet for en PostgreSQL -spørring. Dette er faktisk hovedårsaken bak arbeidet med "Create Database hvis ikke eksisterer" -notasjon innen PostgreSQL. Ellers, selv om du tilfeldigvis vil utelate denne parameteren, vil du ikke kunne oppnå denne funksjonaliteten i PostgreSQL.

Hvis du følger hele syntaks for denne spørringen riktig, vil en PostgreSQL -database med det spesifiserte navnet bli opprettet med suksess på PostgreSQL -serveren som du kan bekrefte fra utgangsresponsen vist på bildet nedenfor:

Trinn 3: Verifisering om den nye PostgreSQL -databasen er opprettet i Windows 10 eller ikke:

Hvis du fremdeles ikke er sikker på at ditt forsøk på å opprette den nye PostgreSQL-databasen i det ovennevnte trinnet var vellykket eller ikke, kan du fremdeles bekrefte det ved å ta en titt på alle eksisterende PostgreSQL-databaser igjen. Denne gangen vil du også kunne finne din nye database der borte. Du trenger bare å kjøre følgende spørsmål for å se dette:

# Velg Datname fra PG_Database;

Totalt ni databaser eksisterer på vår PostgreSQL -server for øyeblikket, og den siste er faktisk den som vi nettopp har forsøkt å lage, som fremhevet i bildet vist nedenfor:

Konklusjon:

Denne artikkelen snakket om "Create Database hvis ikke eksisterer" -notasjon og dens bruk. Så diskuterte vi om denne notasjonen støttes av PostgreSQL eller ikke. Etter å ha funnet ut at vi ikke kan bruke denne notasjonen direkte i PostgreSQL, delte vi med deg en metode for å oppnå den samme funksjonaliteten mens vi holdt oss innenfor PostgreSQL -miljøet. Når du har gått gjennom denne metoden, vil du forstå dette ekstremt nyttige alternativet til "Opprett databasen hvis ikke eksisterer" Notasjon som PostgreSQL støtter fullt ut.