MySQL MariaDB

MySQL KUSTUTA KASADI

MySQL KUSTUTA KASADI
MySQL-is kasutatakse lauset Kustuta kaskaadist vastavate ridade eemaldamiseks lapsetabelist kaudselt alati, kui read eemaldatakse vanematabelist. See on suhteline võõrvõti seotud kontekstuaalne käitumine.

Eeldades, et olete loonud kaks võõras võtmesuhtes olevat välisvõtmetega tabelit, renderdades ühe vanema ja lapse tabeli. Pärast seda tuleks fikseerida ühe välisvõtme jaoks mõeldud, et teine ​​oleks kogu kaskaaditegevuses edukas, seejärel määrame lause KUSTUTA KASADI. Võib-olla, kui üks FOREIGN KEY käsk määrab KASUTAMISE KASKADI, käivitavad kaskaadfunktsioonid erandi.

Mõelgem, kuidas kogu MySQL-i tabelis saaksime kasutada lauset ON DELETE CASCADE.

Töö jätkamiseks peate avama hiljuti installitud MySQL käsurea kliendi kest. Avamisel palutakse teil MySQL-i käsurea klientkesta kasutamise jätkamiseks sisestada oma parool, nagu allpool lisatud.

Järgmisena ehitame kaks tabelit, mida nimetatakse tellimuseks ja kliendiks. Mõlemad vastastikused tabelid on ühendatud võõrklahvi kasutades kaskaadi kustutamise funktsiooniga. "Tellimus" on vanematabel selles punktis ja alatabel on "klient". Lisatud skriptide ja vastavate kirjetega peate koostama mõlemad tabelid. Kasutage allpool olevat käsku „use”, et valida andmebaas, milles soovite töötada, või luua selles tabeleid. Siin on “andmed” andmebaas, mida me kasutame.

>> kasutada andmeid;

Loo vanematabel:

Kõigepealt peate looma tabeli "order" koos selle väljadega käsuga CREATE TABLE, nagu on näidatud allpool päringus. Veeru „ID” kasutatakse järgmises tabelis „klient” võõrvõti.

>> LOE TABELI andmed.tellimus (ID INT PRIMARY KEY AUTO_INCREMENT NOT NULL, Item VARCHAR (50) NOT NULL, Price VARCHAR (50) NOT NULL);

Lisame sellesse tabelisse mõned andmed. Peate MySQL-i käsurea kestas täitma allpool näidatud päringud ja käivitama kõik käsud käsureal eraldi või lihtsalt lisama kõik käsurea käsud ühe sammuna. Andmete lisamiseks tabelisse saate kasutada ka MySQL Workbenchi GUI-d.

Nüüd kontrollime tabeli tellimust pärast väärtuste sisestamist. Sel eesmärgil saate käsku SELECT kasutada järgmiselt:

>> SELECT * FROM andmetest.tellimus;

Näete, et andmed on ootuspäraselt edukalt tabelisse "tellimus" salvestatud.

Looge alatabel kustutamise kaskaadiga:

Nüüd on järjekord luua järgmine tabel nimega “klient”.

Esiteks peate koos tabeli nimega tippima märksõna „CREATE”. Seejärel peate lisama välja- või veerunimed koos nende andmetüüpidega. Peate nimetama viimase veeru, mida kasutatakse selles tabelis võõrvõtmena, samamoodi nagu eelmises tabelis. Nagu teate, on tabeli „tellimus” veergu „ID” kasutatud välisvõtmena tabelis „klient” kui „tellimuse ID”. Pärast seda peate lisama märksõna „KONSTRUKTSIOON”, mida kasutatakse välisvõtme initsialiseerimiseks, koos eelmise tabeli viitega. Nüüd peate kasutama lauset “KUSTUTA KASKADE” koos märksõnaga “SEES”.

>> LOE TABELI andmed.klient (CustID INT NOT NULL.tellimus (ID) ON DELETE CASCADE);

Pärast tabeli loomist ja selles tabelis DELETE CASCADE edukalt teostatud on aeg sellesse tabelisse lisada mõned väärtused. Proovige selleks ükshaaval MySQL-i käsurea kliendi kestas olevaid juhiseid.

Seejärel sisestage päringud. Tabeli kontrollimiseks on oluline, kas andmed on edukalt lisatud või mitte. Nii proovige seda teha allpool käsu:

>> SELECT * FROM andmetest.klient;

Siin saate heita pilgu tabeli väljundile, et andmed on sellele tõhusalt omistatud ja ilma ühegi vea või veata.

Kustuta kirjed:

Nüüd, kui kustutate mis tahes andmed või rida vanematabelis, kustutab see ka andmed või rida alamtabelis, kuna lapsetabelis mainitud võõral võtmel on lubatud DELETE CASCADE. Proovime kõigepealt kustutada päringu DELETE, seejärel kontrollige tulemusi. Kustutame andmed tabelist „order”, kus „ID” on „11”. Kui sama „ID” leitakse tabelis „klient” võõrvõtme veerus „OrderID”, kustutatakse ka tabeli „klient” suhteline rida või andmed. Selleks proovige käsureal allpool olevat käsku:

>> Kustuta andmetest. järjekord WHERE ID = '11';

Kõigepealt kontrollime vanemate tabelit. Seejärel tippige tabeli „order” ülejäänud kirjete hankimiseks allpool olev käsk SELECT, pärast mõne kirje kustutamist. Näete, et tabeli kirje, kus „ID” oli „11”, on sellest tabelist edukalt kustutatud. See tähendab, et sama ID-väärtuse “11” suhtelised kirjed kustutatakse ka alamtabelist.

>> SELECT * FROM andmetest.tellimus;

Lapsetabeli kirjete hankimine käsu SELECT abil on sama lihtne kui varem. Proovige lihtsalt allolevat käsku ja teil on tulemused.

Tulemuste saamisel näete, et kirje „CustID” väärtusega „1” on täielikult kustutatud. Seda seetõttu, et veeru „OrderID” esimeses reas on väärtus „11”, mis viib selle rea kustutamiseni.

>> SELECT * FROM andmetest.klient;

Kui proovite vanemate tabelit käsu DROP abil maha visata, takistab MySQL teid seda tegemast. Selle põhjuseks on see, et vanematabel on võimaldanud sellel kustutada kaskaadi. Nii et tabeli viskamiseks peate kõigepealt kustutama kustutamise kaskaadi.

Järeldus:

Oleme teinud selgituse Kustuta kaskaad MySQL-is. Selle selgemaks muutmiseks proovige lõpus veel näiteid.

How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
X-Mouse Button Control abil saate hiire nupud erinevates tarkvarades erinevalt ümber teha
Võib-olla vajate tööriista, mis võiks muuta teie hiire juhtimissüsteemi iga kasutatava rakendusega. Sel juhul võite proovida rakendust nimega X hiiren...
Microsoft Sculpt Touch juhtmeta hiirte ülevaade
Lugesin hiljuti Microsoft Sculpt Touch juhtmevaba hiir ja otsustas selle osta. Pärast mõnda aega kasutamist otsustasin jagada sellega oma kogemusi. Se...