Hvordan du bruker postgres slett kaskade

Hvordan du bruker postgres slett kaskade
Postgres Database Management er som enhver annen database. CRUD -operasjonen har en nøkkelrolle i å administrere databasene. Det fremmede nøkkelkonseptet praktiseres mye for å koble data fra en tabell til en annen tabell og bygge relasjoner. Delete -setningen vil begrense deg til å slette når den primære nøkkelen til en post blir kalt i den andre tabellen. Så hvis du vil utføre en slettoperasjon på et bord i Postgres, anbefales det å se etter avhengighetens avhengigheter på andre tabeller. For å utføre sletting i et slikt tilfelle, tillater slettekaskaden i Postgres sletting av posten som dens assosiasjoner til andre tabeller. Denne artikkelen forklarer arbeid og bruk av Delete Cascade -operasjonen i Postgres.

Forutsetninger

Følgende sett med programmer må være til stede på systemet ditt for å begynne å bruke slettekaskade:

  • En postgres -database installert og fungerer riktig:
  • Forsikre deg om at slettekaskadens nøkkelord er innebygd riktig i en tabell:

Hvordan postgres sletter kaskade fungerer

Delete Cascade -operasjonen praktiseres å slette Records Association i flere tabeller. Delete Cascade er et nøkkelord som lar slette utsagn utføre sletting hvis noen avhengigheter oppstår er til stede. Delete Cascade er innebygd som en egenskap av kolonnen under innsatsoperasjonen. Vi har gitt et utvalg av Delete Cascade -nøkkelord om at hvordan det brukes:

La oss si, vi har brukt Ansatt ID som en fremmed nøkkel. Når du definerer Ansatt ID I barnebordet er slettekaskaden satt til som vist under:

Ansatt_id Heltall Referanser Ansatte (ID) på Delete Cascade

ID -en blir hentet fra ansattes tabell, og nå, hvis Postgres slettedriften blir brukt på overordnede tabellen, vil de tilknyttede dataene også bli slettet fra respektive barnebord.

Hvordan du bruker postgres slett kaskade

Denne delen guider deg til å bruke slett kaskade i en postgres -database. Følgende trinn vil opprette foreldre- og barnebord og deretter bruke slettekaskade på dem. Så la oss starte:

Trinn1: Koble til databasen og lag tabeller

Følgende kommando fører til at vi får kontakt med Postgres -databasen som heter Linuxhint.

\ C Linuxhint

Når databasen er tilkoblet vellykket, har vi opprettet en tabell som heter personale og følgende kodelinjer blir utført for å lage flere kolonner i personale bord. De personale Tabellen vil fungere som et foreldrebord her:

Lag tabellpersonalet (ID Serial Primary Key, Name Varchar (50), Betegnelse VARCHAR (50));

Nå har vi laget et annet bord som heter info Ved å bruke kommandoen angitt nedenfor. Blant bordene, info tabellen blir referert til som barnet, mens personale Tabell er kjent som overordnet. Her vil nøkkeltilskuddet være slettekaskademodus satt til ON. Slettkaskaden brukes i den utenlandske nøkkelkolonnen som heter (Staff_id) som denne kolonnen fungerer som en primærnøkkel i overordnet tabell.

Lag tabellinfo (INFO_ID INTEGER IKKE NULL, Staff_id Integer References Staff (ID) på Delete Cascade, Team_lead varchar (50), Primærnøkkel (Info_id, Staff_id));

Trinn 2: Sett inn noen data i tabeller

Før du graver deg inn i slettingsprosessen, sett inn noen data i tabellene. Så vi har utført følgende kode som setter inn data i personale bord.

Sett inn i personalet (ID, navn, betegnelse) verdier ('1', 'John', 'anmelder'),
('2', 'Jack', 'Instructor'), ('3', 'Jerry', redaktør), ('4', 'Pock', 'forfatter');

La oss se på innholdet i personalbordet ved å bruke kommandoen nedenfor:

Velg * fra ansatte;

Legg nå litt innhold til barnebordet. I vårt tilfelle heter barnebordet info Og vi har utført følgende linjer med postgres -uttalelser for å sette inn data i info -tabellen:

Sett inn info (info_id, Staff_id, Team_lead) verdier ('1', '4', 'Sam'),
('2', '3', 'Tim'), ('3', '1', 'Brook'), ('4', '2', 'rute');

Etter vellykket innsetting, bruk Select -setningen for å få innholdet i info bord:

> Velg * fra info;

Merk: Hvis du allerede har tabellene og slettekaskaden er satt til på et barnebord, kan du hoppe over de første to trinnene.

Trinn 3: Bruk slett kaskadeoperasjon

Ved å bruke slettedriften på personalbordets ID -felt (primærnøkkel) vil også slette alle forekomster fra info bord. Følgende kommando hjalp oss i denne forbindelse:

Slett fra ansatte der ID = 3;

Når slettingen er utført vellykket, må du bekrefte at kaskaden blir brukt eller ikke. For å gjøre det, få innholdet fra både foreldre- og barnebord:

Når du henter dataene fra personaletabellen, observeres det at alle dataene til ID = 3 blir slettet:

> Velg * fra ansatte;

Etter det må du bruke Select -setningen på barnebordet (i vårt tilfelle er det info). Når du er brukt, vil du observere at feltet assosiert med Staff_id = 3 blir slettet fra barnebordet.

> Velg * fra info;

Konklusjon

Postgres støtter alle operasjonene som kan utføres for å manipulere dataene i en database. Delete Cascade -nøkkelordet lar deg slette dataene som er tilknyttet en hvilken som helst annen tabell. Generelt vil ikke sletterklæringen tillate deg å gjøre det. Dette beskrivende innlegget gir arbeid og bruk av Postgres Delete Cascade -operasjonen. Du ville ha lært å bruke Delete Cascade -operasjonen i et barnebord, og når du bruker Delete -setningen på overordnede tabellen, vil den også slette alle forekomster fra barnebordet.