MySQL MariaDB

MySQL IZBRIŠI KASKADO

MySQL IZBRIŠI KASKADO
Na MySQL se izjava ON DELETE CASCADE uporablja za implicitno odstranitev ustreznih vrstic iz podrejene tabele, kadar se vrstice odstranijo iz nadrejene tabele. To je relativna vrsta kontekstualnega vedenja, povezanega s tujim ključem.

Ob predpostavki, da ste v razmerju tujega ključa izdelali dve tabeli s TUJIM KLJUČOM, upodabljanje ene nadrejene in nadrejene. Po tem je treba določiti, da je namenjen enemu TUJEM KLJUČU, da bo drugi uspešen med kaskadnimi aktivnostmi, nato določimo izjavo ON DELETE CASCADE. Morda, če en stavek FOREIGN KEY določa ON DELETE CASCADE, bodo kaskadne funkcije sprožile izjemo.

Dovolite nam, kako v celotni tabeli MySQL lahko uporabimo izjavo ON DELETE CASCADE.

Če želite nadaljevati z delom, morate odpreti nedavno nameščeno odjemalsko lupino ukazne vrstice MySQL. Po odprtju boste morali vnesti geslo za nadaljevanje uporabe odjemalske lupine MySQL, kot je priloženo spodaj.

Nato bomo zgradili dve tabeli, imenovani »naročilo« in »kupec«. Obe vzajemni tabeli sta povezani s funkcijo brisanja kaskade s pomočjo tujega ključa. Na tej točki je "naročilo" nadrejena tabela, podrejena tabela pa "stranka". S pripadajočimi skripti morate skupaj z ustreznimi zapisi sestaviti obe tabeli. S spodnjim ukazom »use« izberite bazo podatkov, v kateri želite delati ali ustvarjati tabele. Tukaj je "data" baza podatkov, ki jo uporabljamo.

>> uporaba podatkov;

Ustvari nadrejeno tabelo:

Najprej morate s pomočjo ukaza CREATE TABLE ustvariti tabelo „order“ skupaj z njenimi polji, kot je prikazano v spodnji poizvedbi. Stolpec »ID« bo uporabljen v naslednji tabeli »kupec« kot tuji ključ.

>> USTVARI podatke v TABELI.naročilo (ID INT PRIMARNI KLJUČ AUTO_INCREMENT NOT NULL, artikel VARCHAR (50) NOT NULL, cena VARCHAR (50) NOT NULL);

V to tabelo dodajte nekaj podatkov. Izvesti morate spodnje poizvedbe v lupini ukazne vrstice MySQL in zagnati vsak ukaz posebej v ukazni vrstici ali preprosto dodati vse ukaze v ukazni vrstici v enem koraku. Za dodajanje podatkov v tabelo lahko uporabite tudi GUI MySQL Workbench GUI.

Zdaj pa po vnosu vrednosti preverimo tabelo »vrstni red«. V ta namen lahko uporabite ukaz SELECT na naslednji način:

>> IZBERI * IZ podatkov.naročilo;

Vidite lahko, da so bili podatki po pričakovanju uspešno shranjeni v tabelo »vrstni red«.

Ustvari podrejeno tabelo z DELETE Cascade:

Zdaj je na vrsti izdelava nove tabele, imenovane »kupec«.

Najprej morate vnesti ključno besedo »USTVARI« skupaj z imenom tabele. Nato morate dodati imena polj ali stolpcev skupaj z njihovimi podatkovnimi vrstami. Poimenovati morate zadnji stolpec, ki bo uporabljen kot tuji ključ v tej tabeli, enako kot ste ga poimenovali v prejšnji tabeli. Kot veste, je bil stolpec "ID" iz tabele "order" uporabljen kot tuji ključ v tabeli "customer" kot "OrderID". Po tem morate dodati ključno besedo “CONSTRAINT”, ki se uporablja za inicializacijo FOREIGN Key, skupaj s sklicem na prejšnjo tabelo. Zdaj morate uporabiti stavek “DELETE CASCADE” skupaj s ključno besedo “ON”.

>> USTVARI podatke v TABELI.stranka (ID UPORABE INT NOT NULL AUTO_INCREMENT PRIMARNI KLJUČ, Ime VARCHAR (45) NOT NULL, OrderID INT NOT NULL, CONSTRAINT order_id_fk TUJI KLJUČ (OrderID) REFERENCE podatki.naročilo (ID) NA IZBRISI KASKADO);

Ko je tabela ustvarjena in je bila na tej tabeli uspešno izvedena DELETE CASCADE, je čas, da v to tabelo vstavite nekaj vrednosti. Poskusite spodnja navodila enega za drugim v odjemalski lupini ukazne vrstice MySQL.

Nato vstavite poizvedbe. Bistveno je preveriti tabelo, ali so bili podatki uspešno dodani ali ne. Torej poskusite s tem spodnjim ukazom:

>> IZBERI * IZ podatkov.stranka;

Tu lahko vidite izhod tabele, da so ji podatki učinkovito dodeljeni in brez kakršne koli napake ali napake.

Izbriši zapise:

Zdaj, ko iz nadrejene tabele izbrišete kakršne koli podatke ali vrstico, bo zaradi omogočenega DELETE CASCADE na tujem ključu, omenjenem v nadrejeni tabeli, izbriše tudi podatke ali vrstico iz podrejene tabele. Najprej preizkusimo poizvedbo DELETE, nato pa preverimo rezultate. Podatke bomo izbrisali iz tabele "order", kjer je "ID" 11. Če bo isti »ID« najden v tabeli »kupec« v stolpcu tujega ključa, »ID naročila«, se bo izbrisala tudi relativna vrstica ali podatki v tabeli »kupec«. Poskusite spodnji ukaz v ukazni vrstici:

>> IZBRIŠI IZ podatkov. naročilo WHERE ID = '11';

Najprej preverimo nadrejeno tabelo. Nato vnesite ukaz SELECT, ki ga najdete spodaj, da po brisanju nekaterih zapisov pridobite preostale zapise v vrstnem redu tabele. Videli boste, da je bil zapis tabele, kjer je bil "ID" 11, uspešno izbrisan iz te tabele. To pomeni, da bi bili relativni zapisi iste vrednosti ID, "11", izbrisani tudi iz podrejene tabele.

>> IZBERI * IZ podatkov.naročilo;

Pridobivanje zapisov podrejene tabele z ukazom SELECT je tako preprosto kot prej. Preizkusite spodnji ukaz in dobili boste rezultate.

Ko dobite rezultate, lahko vidite, da je bil zapis »CustID« z vrednostjo »1« popolnoma izbrisan. To je zato, ker ima stolpec »OrderID« v prvi vrstici vrednost »11«, kar vodi do izbrisa te vrstice.

>> IZBERI * IZ podatkov.stranka;

Ko poskušate s pomočjo ukaza DROP spustiti starševsko tabelo, vam MySQL to prepreči. To je zato, ker je nadrejena tabela na njej omogočila DELETE CASCADE. Če želite spustiti mizo, morate najprej odstraniti DELETE CASCADE iz nje.

Zaključek:

Končali smo z razlago DELETE CASCADE v MySQL. Da bo bolj jasno, poskusite z več primeri na koncu.

Odprtokodna vrata komercialnih igralnih sistemov
Brezplačne, odprtokodne in medplatformacijske igre, ki jih lahko uporabite za igranje starih, pa tudi nekaterih dokaj nedavnih naslovov iger. V tem čl...
Najboljše igre ukazne vrstice za Linux
Ukazna vrstica ni le vaš največji zaveznik pri uporabi Linuxa - lahko je tudi vir zabave, saj jo lahko uporabljate za igranje številnih zabavnih iger,...
Najboljše aplikacije za preslikavo gamepadov za Linux
Če želite igre na Linuxu igrati z igralno ploščico namesto s tipičnim sistemom za vnos tipkovnice in miške, je za vas na voljo nekaj uporabnih aplikac...