MySQL MariaDB

MySQL IZBRIŠI KASKADU

MySQL IZBRIŠI KASKADU
Na MySQL-u se izjava ON DELETE CASCADE koristi za implicitno uklanjanje odgovarajućih redaka iz podređene tablice kad god se retci uklone iz roditeljske tablice. Ovo je relativna vrsta kontekstualnog ponašanja povezanog s inozemnim ključem.

Pod pretpostavkom da ste izradili dvije tablice sa STRANIM KLJUČEM unutar odnosa stranog ključa, generirajući jednu roditeljsku i podređenu tablicu. Nakon toga treba namjestiti jedan STRANI KLJUČ da bi drugi bio uspješan tijekom kaskadnih aktivnosti, a zatim navodimo izjavu ON DELETE CASCADE. Možda ako jedan izraz FOREIGN KEY odredi ON DELETE CASCADE, kaskadne funkcije će pokrenuti iznimku.

Shvatimo kako bismo u tablici MySQL mogli koristiti izjavu ON DELETE CASCADE.

Morate otvoriti nedavno instaliranu klijentsku ljusku MySQL naredbenog retka da biste nastavili s radom. Nakon otvaranja, od vas će se zatražiti da unesete lozinku za nastavak korištenja MySQL ljuske klijentskog retka naredbenog retka, kao što je dodano u nastavku.

Dalje ćemo izgraditi dvije tablice pod nazivom "narudžba" i "kupac". Obje međusobne tablice povezane su funkcijom kaskade brisanja pomoću stranog ključa. "Narudžba" je nadređena tablica u ovom trenutku, a podređena tablica je "kupac". Uz pripadajuće skripte, zajedno s odgovarajućim zapisima, morate sastaviti obje tablice. Upotrijebite naredbu "use" u nastavku da biste odabrali bazu podataka u kojoj želite raditi ili u njoj kreirati tablice. Ovdje je "podatak" baza podataka koju koristimo.

>> koristiti podatke;

Stvori roditeljsku tablicu:

Prije svega, morate stvoriti tablicu "poredak" zajedno s njezinim poljima pomoću naredbe CREATE TABLE, kao što je prikazano u donjem upitu. Stupac "ID" upotrijebit će se u sljedećoj tablici "kupac" kao strani ključ.

>> IZRADI TABELU podataka.narudžba (ID INT PRIMARNI KLJUČ AUTO_INCREMENT NOT NULL, Artikl VARCHAR (50) NOT NULL, Cijena VARCHAR (50) NOT NULL);

Dodajmo nekoliko podataka u ovu tablicu. Morate izvršiti dolje prikazane upite u MySQL ljusci naredbenog retka i pokrenuti svaku naredbu pojedinačno u naredbenom retku ili jednostavno dodati sve naredbe u naredbeni redak u jednom koraku. Također možete koristiti MySQL Workbench GUI za dodavanje podataka u tablicu.

Sad provjerimo redoslijed tablice nakon unošenja vrijednosti. U tu svrhu možete koristiti naredbu SELECT na sljedeći način:

>> ODABERI * IZ podataka.narudžba;

Vidite da su podaci uspješno spremljeni u tablicu "poredak" kako se očekivalo.

Izradite podređenu tablicu s DELETE Cascade:

Sada je red da se kreira još jedna tablica koja se naziva "kupac".

Prvo morate upisati ključnu riječ "CREATE" zajedno s nazivom tablice. Zatim morate dodati imena polja ili stupaca zajedno s njihovim vrstama podataka. Morate imenovati zadnji stupac koji će se koristiti kao strani ključ u ovoj tablici, isto kao što ste ga imenovali u prethodnoj tablici. Kao što znate stupac "ID" iz tablice "order" korišten je kao inozemni ključ u tablici "kupac" kao "OrderID". Nakon toga morate dodati ključnu riječ “CONSTRAINT” koja se koristi za inicijalizaciju STRANOG ključa, zajedno s referencom na prethodnu tablicu. Sada morate upotrijebiti izjavu “DELETE CASCADE” zajedno s ključnom riječi “ON”.

>> IZRADI podatke u TABELI.kupac (ID UPORABE INT NOT NULL AUTO_INCREMENT PRIMARNI KLJUČ, Ime VARCHAR (45) NOT NULL, OrderID INT NOT NULL, CONSTRAINT order_id_fk STRANI KLJUČ (OrderID) REFERENCE podaci.narudžba (ID) NA BRISANJU KASKADE);

Nakon što je tablica kreirana, a DELETE CASCADE uspješno izveden na ovoj tablici, vrijeme je da u nju ubacite neke vrijednosti. Pokušajte dolje navedene upute u MySQL klijentskoj ljusci naredbenog retka da biste to učinili.

Nakon toga izvršite umetanje upita. Važno je provjeriti tablicu jesu li podaci uspješno dodani ili ne. Pa pokušajte s ovom naredbom ispod:

>> ODABERI * IZ podataka.kupac;

Ovdje možete uvid u izlaz tablice da su joj podaci učinkovito dodijeljeni i bez ikakve pogreške ili greške.

Izbriši zapise:

Sada kada iz roditeljske tablice izbrišete bilo koji podatak ili redak, također će izbrisati podatke ili redak iz podređene tablice zbog omogućene DELETE CASCADE na stranom ključu spomenutom u podređenoj tablici. Pokušajmo prvo DELETE upit, a zatim provjerimo rezultate. Izbrisat ćemo podatke iz tablice "poredak" gdje je "ID" 11. Ako se isti "ID" pronađe u tablici "kupac" u stupcu stranog ključa, "OrderID", tada će se izbrisati i relativni redak ili podaci u tablici "kupac". Pokušajte naredbu ispod u naredbenom retku da biste to učinili:

>> IZBRIŠI IZ podataka. narudžba WHERE ID = '11';

Prvo provjerimo nadređenu tablicu. Zatim upišite naredbu SELECT koja se nalazi dolje da biste dohvatili preostale zapise tablice "redoslijed" "nakon brisanja nekih zapisa. Vidjet ćete da je zapis tablice, gdje je “ID” bio “11”, uspješno izbrisan iz ove tablice. To znači da bi se relativni zapisi iste vrijednosti ID-a, "11", također izbrisali iz podređene tablice.

>> ODABERI * IZ podataka.narudžba;

Dohvaćanje zapisa podređene tablice pomoću naredbe SELECT jednako je jednostavno kao i prije. Samo isprobajte donju naredbu i imat ćete rezultate.

Po dobivanju rezultata možete vidjeti da je zapis "CustID" koji ima vrijednost "1" potpuno izbrisan. To je zato što stupac "OrderID" u prvom redu ima vrijednost "11", što dovodi do brisanja tog retka.

>> ODABERI * IZ podataka.kupac;

Kada pokušate ispustiti nadređenu tablicu pomoću naredbe DROP, MySQL će vas spriječiti u tome. To je zato što je nadređena tablica omogućila DELETE CASCADE na njoj. Dakle, da biste spustili tablicu, prvo morate ukloniti IZBRIŠI KASKADU s nje.

Zaključak:

Završili smo s objašnjenjem DELETE CASCADE u MySQL. Da biste to učinili jasnijim, isprobajte još primjera na kraju.

Kako prikazati brojač FPS-a u Linux igrama
Linux gaming dobio je velik poticaj kada je Valve najavio Linux podršku za Steam klijent i njihove igre 2012. godine. Od tada su mnoge AAA i indie igr...
Kako preuzeti i igrati Sid Meier's Civilization VI na Linuxu
Uvod u igru Civilization 6 moderan je pogled na klasični koncept predstavljen u seriji igara Age of Empires. Ideja je bila prilično jednostavna; započ...
Kako instalirati i igrati Doom na Linuxu
Uvod u Doom Serija Doom nastala je 90-ih nakon izlaska originalnog Dooma. To je bio trenutni hit i od tog vremena nadalje igraća serija dobila je broj...