Forutsetninger
Følgende sett med programmer må være til stede på systemet ditt for å begynne å bruke slettekaskade:
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 PÅ 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 LinuxhintNå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'),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'),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.