SQL slett kaskade

SQL slett kaskade

SQL på Delete Cascade er en begrensning som gjør at SQL kan slette rader tilknyttet en spesifikk overordnede tabell når overordnede tabellen blir slettet.

Ved hjelp av denne artikkelen vil vi diskutere hvordan du implementerer slettet på Cascade -begrensningen i SQL.

SQL Cascade praktisk eksempel

Anta at vi har to tabeller som inneholder utviklerinfo og en annen utviklers bidrag. Utvikleren har flere bidrag.

Her ønsker vi å skape et forhold der alle bidragene fra den andre tabellen automatisk fjernes hvis utvikleren fjernes fra bordet.

La oss starte med å lage utviklertabellen:

Lag tabellutviklere (
dev_id seriell primærnøkkel,
full_name varchar (100) ikke null,
dev_language varchar (255) ikke null
);

La oss deretter lage en bidragstabell som vist:

Lag tabellbidrag (
repo_id seriell primærnøkkel,
repo_name varchar (100) ikke null,
commit_id int ikke null,
dev_id heltall ikke null,
Utenlandsk nøkkel (dev_id)
Referanser utviklere (dev_id)
På slett kaskade
);

Denne tabellen erklærer en utenlandsk nøkkelbegrensning som inneholder en slettekaskadekrammel og refererer til Dev_id i utviklerens tabell.

La oss legge til prøvedata for å teste som vist:

Sett inn i utviklere (full_name, dev_language)
Verdier
('Romilly Roy Reeve', 'Python 3'),
('Anastasija Jimi Hirsch', 'C ++'),
('Marylène Nina Capella', 'Rust')

Utviklertabellen skal ha prøvedata som vist:

Velg * fra utviklere;

Legg til prøvedata i bidragstabellen som vist:

Sett inn i bidrag (repo_name, commit_id, dev_id)
Verdier
('Repo1', 464576, 1),
('repo1', 445876, 2),
('repo1', 466466, 3);

Contrib -tabellen skal inneholde data som:

Velg * fra bidrag;

For å illustrere hvordan på Delete Cascade -begrensning fungerer, la oss fjerne utvikleren med ID på 3.

Slett fra utviklere der dev_id = 3;

Hvis du spør om Contrib -tabellen, vil du legge merke til at posten for Dev_id 3 også har blitt droppet.

Velg * fra bidrag;

Slik bruker du dem på slettekaskadebegrensninger i SQL.

Takk for at du leser!!