MySQL MariaDB

MySQL POISTA KASADI

MySQL POISTA KASADI
MySQL: ssä LASKE POISTA KASKADEA käytetään vastaavien rivien poistamiseen alitaulusta implisiittisesti aina, kun rivit poistetaan vanhemman taulukosta. Tämä on suhteellisen tyyppinen ulkomaiseen avaimeen liittyvä asiayhteyskäyttäytyminen.

Olettaen, että olet tuottanut kaksi taulukkoa, joissa on ulkomaanavain vieraan avaimen suhteessa, jolloin yksi vanhempien ja alatasojen taulukko on tehty. Sen jälkeen yhdelle ULKOPUOLISELLE AVAIMELLE on tarkoitus vahvistaa toinen, jotta se onnistuu koko kaskaditoiminnossa, minkä jälkeen määritämme ON DELETE CASCADE -käskyn. Ehkä jos yksi FOREIGN KEY -käsky määrittää ON DELETE CASCADE -asetuksen, kaskadointitoiminnot laukaisevat poikkeuksen.

Ymmärretään miten MySQL-taulukossa voimme käyttää ON DELETE CASCADE -käskyä.

Jatka työskentelyä avaamalla äskettäin asennettu MySQL-komentorivin Client Shell. Avaamisen jälkeen sinua pyydetään antamaan salasanasi, jotta voit jatkaa MySQL-komentorivin asiakaskuoren käyttöä alla olevan liitteen mukaisesti.

Seuraavaksi aiomme rakentaa kaksi taulukkoa nimeltä "tilaus" ja "asiakas". Molemmat keskinäiset taulukot on yhdistetty Delete Cascade -toimintoon käyttämällä vierasta avainta. "Tilaus" on tässä vaiheessa ylätaulukko ja alipöytä on "asiakas". Mukana olevien komentosarjojen ja vastaavien tietueiden kanssa joudut rakentamaan molemmat taulukot. Valitse alla oleva "use" -komento valitaksesi tietokanta, jossa haluat työskennellä, tai luoda taulukoita siinä. Tässä "data" on tietokanta, jota käytämme.

>> käyttää tietoja;

Luo vanhempien taulukko:

Ensinnäkin sinun on luotava taulukko "order" ja sen kentät CREATE TABLE -komennolla alla olevan kyselyn mukaisesti. Saraketta "ID" käytetään seuraavassa taulukossa "asiakas" vieraana avaimena.

>> LUO TAULUKON tiedot.tilaus (ID INT PRIMARY KEY AUTO_INCREMENT NOT NULL, nimike VARCHAR (50) NOT NULL, hinta VARCHAR (50) NOT NULL);

Lisätään joitain tietoja tähän taulukkoon. Sinun on suoritettava alla esitetyt kyselyt MySQL-komentorivin kuoressa ja suoritettava kukin komento erikseen komentorivillä tai yksinkertaisesti lisättävä kaikki komentorivin komennot yhdessä vaiheessa. Voit lisätä tietoja taulukkoon myös MySQL Workbench -käyttöliittymän avulla.

Tarkastellaan nyt taulukon "järjestys", kun olemme asettaneet siihen arvot. Voit käyttää SELECT-komentoa tähän tarkoitukseen seuraavasti:

>> VALITSE * FROM-tiedoista.Tilaus;

Näet, että tiedot on onnistuneesti tallennettu taulukkoon "järjestys" odotetusti.

Luo lapsitaulukko DELETE Cascadella:

Nyt on vuoro luoda toinen taulukko nimeltä asiakas.

Ensin sinun on kirjoitettava CREATE-avainsana taulukon nimen kanssa. Sitten sinun on lisättävä kenttien tai sarakkeiden nimet sekä niiden tietotyypit. Sinun on nimettävä viimeinen sarake, jota käytetään vieraan avaimen muodossa tässä taulukossa, sama kuin nimitit sen edellisessä taulukossa. Kuten tiedät, saraketta "ID" taulukosta "order" on käytetty vieraana avaimena taulukossa "asiakas" nimellä "OrderID". Sen jälkeen sinun on lisättävä "RAJOITUS" -avainsana, jota käytetään FOREIGN-avaimen alustamiseen, sekä edellisen taulukon viite. Nyt sinun on käytettävä DELETE CASCADE -käskyä yhdessä ON-avainsanan kanssa.

>> LUO TAULUKON tiedot.asiakas (CustID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Name VARCHAR (45) NOT NULL, OrderID INT NOT NULL, CONSTRAINT order_id_fk FOREIGN KEY (OrderID) REFERENCES data.tilaus (ID) POISTA KASADI);

Kun taulukko on luotu ja DELETE CASCADE on suoritettu onnistuneesti tähän taulukkoon, on aika lisätä joitain arvoja tähän taulukkoon. Kokeile alla olevia ohjeita yksitellen MySQL-komentorivin asiakaskuoressa.

Tee sitten kyselyjen lisääminen. On tärkeää tarkistaa taulukko, onko tiedot lisätty onnistuneesti vai ei. Joten kokeile tätä alla olevaa komentoa tehdäksesi tämän:

>> VALITSE * FROM-tiedoista.asiakas;

Tässä voit saada vilauksen taulukkotuloksesta, että tiedot on osoitettu tehokkaasti sille ilman virheitä tai virheitä.

Poista tietueet:

Nyt kun poistat mitään tietoja tai riviä vanhempien taulukosta, se poistaa myös tiedot tai rivit alipöydästä, koska alatasossa mainitussa ulkomaisessa avaimessa on käytössä POISTA KASADI. Kokeillaan ensin POISTA-kyselyä ja tarkistetaan sitten tulokset. Poistamme tiedot taulukosta "tilaus", jossa "ID" on "11". Jos sama "ID" löytyy vieraan avaimen sarakkeen "OrderID" taulukosta "asiakas", myös taulukon "asiakas" suhteellinen rivi tai tiedot poistetaan. Kokeile alla olevaa komentoa komentorivillä:

>> POISTA tiedoista. järjestys WHERE ID = '11';

Tarkastellaan ensin vanhempien taulukko. Kirjoita sitten alla oleva SELECT-komento noutaa taulukon "order" jäljellä olevat tietueet joidenkin tietueiden poistamisen jälkeen. Näet, että taulukon tietue, jossa "ID" oli "11", on poistettu onnistuneesti tästä taulukosta. Tämä tarkoittaa, että saman ID-arvon "11" suhteelliset tietueet poistettaisiin myös alatasosta.

>> VALITSE * FROM-tiedoista.Tilaus;

Lapsitaulukon tietueiden hakeminen SELECT-komennolla on yhtä helppoa kuin aiemmin. Kokeile vain alla olevaa komentoa, niin saat tulokset.

Tulosten saamisen jälkeen näet, että CustID-tietue, jonka arvo on 1, on poistettu kokonaan. Tämä johtuu siitä, että sarakkeen "OrderID" ensimmäisellä rivillä on arvo "11", mikä johtaa kyseisen rivin poistamiseen.

>> VALITSE * FROM-tiedoista.asiakas;

Kun yrität pudottaa ylätaulukon DROP-komennolla, MySQL estää sinua tekemästä sitä. Tämä johtuu siitä, että ylätaulukko on ottanut DELETE CASCADE -asetuksen käyttöön. Joten pudota taulukko, sinun on ensin poistettava POISTA CASCADE siitä.

Päätelmä:

Olemme tehneet selityksen DELETE CASCADE MySQL: stä. Kokeile lisää esimerkkejä lopussa, jotta se olisi selkeämpi.

Battle For Wesnoth 1.13.6 Development Released
Battle For Wesnoth 1.13.6 released last month, is the sixth development release in the 1.13.x series and it delivers a number of improvements, most no...
League of Legendsin asentaminen Ubuntu 14 een.04
Jos olet League of Legendsin fani, tämä on sinulle mahdollisuus testata League of Legendsia. Huomaa, että PlayOnLinux tukee LOLia, jos olet linux-käyt...
Asenna uusin OpenRA-strategiapeli Ubuntu Linuxiin
OpenRA on ilmainen / ilmainen reaaliaikainen strategiapelimoottori, joka luo uudet Westwood-pelit, kuten klassinen Command & Conquer: Red Alert. Hajau...