Postgres Composite Primary Key

Postgres Composite Primary Key
I denne artikkelen vil konseptet med den sammensatte primære nøkkelen bli diskutert i PostgreSQL. En primærnøkkel er et felt som er tilordnet en rad med unike verdier i en databasetabell, men når en tabell har mer enn en unik verdi, bruker vi en sammensatt primærnøkkel for disse attributtene som vil skille dem fra hverandre for utmerkelse. PostgreSQL lar brukerne ha sammensatte primærnøkler i bordene sine. Vi vil diskutere flere eksempler på det sammensatte primære nøkkelkonseptet i PostgreSQL for å bedre forstå dette konseptet.

Sammensatt primærnøkkel syntaks i PostgreSql

Før vi hopper rett for å implementere det sammensatte primære nøkkelkonseptet, bør vi vite om syntaks for å gjøre 2 eller flere attributter til en primærnøkkel i tabellen. Så en sammensatt primærnøkkel er erklært akkurat som en normal primær er erklært når vi oppretter en tabell. Syntaksen for sammensatt primærnøkkel er beskrevet nedenfor, sammen med dens egenskaper eller kolonnenavn:

>> Opprett tabellnavn_OF_TABLE
(Column_1 Datatype,
Kolonne_2 Datatype,
.. ,
Column_n Datatype
Primærnøkkel (kolonne_1, kolonne_2));

I denne spørringen initialiserer vi en tabell med flere kolonner, og i stedet for inline enkeltprimærnøkkelinitialisering for kolonnene, initialiserer vi dem separat etter at vi har definert kolonnens navn og kolonnens datatype. Vi bruker nøkkelordet "primær nøkkel" med en brakett der vi skriver kolonnens navn atskilt med komma for å spesifisere dem som en sammensatt primærnøkkel.

Initialisere en sammensatt primærnøkkel i PostgreSQL

Siden syntaksen er kjent for oss nå, kan vi se på noen eksempler for å lage en tabell med flere primære nøkler. Så først vil vi åpne spørringsredigereren og lage en tabell.

>> Opprett tabellansatt1 (
e_id int,
e_type int,
E_NAME VARCHAR,
e_sal int);

Nå kan vi opprette en tabell ut av denne spørringen, men det er et problem i denne tabellen, da det ikke er spesifisert noen kolonne for å være en primærnøkkel. I denne tabellen kan det være mer enn en primærnøkkel i henhold til behovene, som hva om lønnen må legges til med bonuser til visse ansatte med visse typer og navn, så de må alle være en primær nøkkel. Hva om vi initialiserer hver av dem som en primær nøkkel separat? La oss se hvordan dette viser seg når vi utfører dette i PostgreSQL.

Lag tabell ansatt1 (
e_id int primærnøkkel,
e_type int primærnøkkel,
E_NAME VARCHAR,
e_sal int);

Utgangen er festet i det vedlagte bildet.

Som utgangen antyder at vi ikke kan opprette mer enn en primærnøkkel i tabellene våre hvis vi bruker en-linjen-metoden. Denne metoden er ikke tillatt i PostgreSQL -miljøet og kan bare brukes når vi bare må erklære en kolonne som en primærnøkkel. Så nå vil vi se på riktig metode for å erklære mer enn en primærnøkkel i en tabell i PostgreSQL.

Deklarerer to kolonner som den primære nøkkelen

I denne situasjonen vil vi lage to kolonner i tabellen til å være primærnøkler samtidig. Vi vil gjøre ID -kolonnen til en primærnøkkel og typen medarbeiderkolonne til en primærnøkkel i tabellen vår. Vi må konstruere denne spørringen som følger for at den skal kjøre vellykket:

>> Opprett tabellansatt1 (
e_id int,
e_type int,
E_NAME VARCHAR,
e_sal int,
Primærnøkkel (E_ID, E_Type)
);

Utgangen er festet i det vedlagte bildet.

Som du kan se at utgangen antyder at tabellen ble opprettet med hell, og vi kan bruke den til å sette inn verdier. La oss nå bekrefte at i vårt postgresmiljø.

>> sett inn i Employee1 -verdier (011,1, 'Josh', 10000),
(021,1, 'John', 18800),
(031,1, 'James', 17000),
(041,2, 'Harry', 13000),
(051,2, 'Alex', 14000),
(061,2, 'Ron', 15000);
Velg * fra Ansatt1;

Utgangen er festet i det vedlagte bildet.

Som du kan se, har vi vellykket opprettet en tabell og satt inn verdier i den mens vi hadde to primære nøkler tildelt kolonnene i tabellen. Så i denne tabellen er de primære nøklene “E_ID” og “E_Type”, og vi har definert dem som unike attributter for tabellen som heter “Employee1”.

Deklarerer tre kolonner som primærnøkkel

I denne situasjonen vil vi lage tre kolonner i tabellen for å bli primærnøkler samtidig. Vi vil gjøre ID -kolonnen til en primærnøkkel, navnet på den ansatte vil bli satt som primærnøkkel, og i tillegg til typen ansattes kolonne som er en primærnøkkel i tabellen vår. For å gjøre denne spørringen til å utføre vellykket, må vi sette den sammen slik:

>> Opprett tabellansatt1 (
e_id int,
e_type int,
E_NAME VARCHAR,
e_sal int,
Primærnøkkel (E_ID, E_Type, E_Name)
);

Utgangen er festet i det vedlagte bildet.

Som du kan se at utgangen antyder at tabellen ble opprettet med hell, og vi kan bruke den til å sette inn verdier. La oss nå bekrefte om innsatsen er gjeldende i vårt postgresmiljø eller ikke.

Sett inn ansatte1verdier (011,1, 'James', 10000),
(041,2, 'Harry', 13000),
(061,2, 'Ron', 15000),
(031,1, 'James', 17000),
(051,2, 'Alex', 14000),
(021,1, 'John', 18800);
Velg * fra Ansatt1;

Utgangen er festet i det vedlagte bildet.

Som du ser, opprettet vi vellykket en tabell og skrev inn data i den mens vi tildelte tre primærnøkler til tabellens kolonner. Så i denne tabellen er de primære nøklene “E ID”, “E Type” og “E Name”, og vi har utpekt dem som et unikt attributt for tabellen “Employee1”.

Deklarerer alle kolonnene som primærnøkkel

I denne situasjonen vil vi gjøre alle fire kolonnene i tabellen til å være primære nøkler samtidig. For at denne spørringen skal kjøre vellykket, må vi skrive slik som vist nedenfor:

Lag tabell ansatt1 (
e_id int,
e_type int,
E_NAME VARCHAR,
e_sal int,
Primærnøkkel (E_ID, E_Type, E_NAME, E_SAL)
);

Utgangen er festet i det vedlagte bildet.

Som du ser, indikerer resultatet at tabellen ble opprettet, og vi kan nå bruke det til å sette inn verdier. La oss nå se om innsatsen fungerer i vårt postgresmiljø.

>> sett inn i Employee1 -verdier (011,1, 'Jacob', 8000),
(051,2, 'Alexander', 1400),
(041,2, 'Harry', 100),
(031,1, 'Jake', 17000),
(061,2, 'Ray', 3500),
(021,1, 'Johnathan', 18800);
Velg * fra Ansatt1;

Utgangen er festet i det vedlagte bildet.

Som du ser, opprettet vi en tabell, fylte den med data og tildelte fire primære nøkler til tabellens kolonner. De primære nøklene i denne tabellen er “E_ID”, “E_Type”, “E_Name” og “E_SAL”. De er blitt erklært som et unikt attributt for tabellen "Ansatt1".

Vi har konkludert med at PostgreSQL lar oss ha mer enn en primærnøkkel i tabellen vår. Vi kan skalere det opp til så mange kolonner som mulig ved å bruke den sammensatte primære nøkkelfunksjonen eller til og med tildele den primære nøkkelen unikhet til alle kolonnene i tabellen.

Konklusjon

I denne artikkelen har vi lært om begrepet sammensatt primærnøkkel i PostgreSQL. Så hvis vi motvirker en situasjon der vi må erklære mer enn en primærnøkkel, kan vi bruke den sammensatte primære nøkkelfunksjonen til den situasjonen ved hjelp av denne artikkelen. Syntaksen for den sammensatte primære nøkkeldeklarasjonen ble også diskutert i en kort detalj i Postgres, ettersom alle aspektene ved funksjonen ble diskutert i deler. Da implementerte vi også dette konseptet i PostgreSQL -miljøet. Den riktige måten å erklære to, tre, eller til og med mer enn 3 primærnøkler i en enkelt tabell i PostgreSQL, er ved å bruke den sammensatte primære nøkkelfunksjonen.