MySQL MariaDB

MySQL VERWIJDER CASCADE

MySQL VERWIJDER CASCADE
Op MySQL wordt de instructie ON DELETE CASCADE gebruikt om de bijbehorende rijen impliciet uit de onderliggende tabel te verwijderen wanneer rijen uit de bovenliggende tabel worden verwijderd. Dit is een relatief type aan externe sleutel gerelateerd contextueel gedrag.

Ervan uitgaande dat u twee tabellen hebt geproduceerd met een FOREIGN KEY binnen een externe-sleutelrelatie, waardoor een bovenliggende en onderliggende tabel wordt weergegeven. Daarna moet een bestemd voor één BUITENLANDSE SLEUTEL worden vastgesteld voor een andere om succesvol te zijn tijdens de trapsgewijze activiteiten, dan specificeren we een ON DELETE CASCADE-instructie. Misschien als een enkele FOREIGN KEY-instructie de ON DELETE CASCADE bepaalt, zullen de trapsgewijze functies een uitzondering activeren.

Laten we eens kijken hoe we in de MySQL-tabel de instructie ON DELETE CASCADE kunnen gebruiken.

U moet de recent geïnstalleerde MySQL-opdrachtregel Client Shell openen om door te gaan met werken. Bij het openen wordt u gevraagd uw wachtwoord in te voeren om door te gaan met het gebruik van de MySQL-opdrachtregelclientshell, zoals hieronder toegevoegd.

Vervolgens gaan we twee tabellen bouwen met de namen "bestelling" en "klant". Beide wederzijdse tabellen zijn verbonden met de verwijdercascadefunctie met behulp van een externe sleutel. Een "bestelling" is op dit moment de bovenliggende tafel en de onderliggende tafel is de "klant". Met de bijbehorende scripts, samen met de respectievelijke records, moet je beide tabellen maken. Gebruik de onderstaande "use"-opdracht om de database te selecteren waarin u wilt werken of maak tabellen binnen. Hier is "data" de database die we gebruiken.

>> gegevens gebruiken;

Bovenliggende tabel maken:

Allereerst moet u de tabel "volgorde" samen met de velden maken met behulp van de opdracht CREATE TABLE, zoals weergegeven in de onderstaande query. De kolom “ID” wordt gebruikt in de volgende tabel “klant” als refererende sleutel.

>> CRE TER TABEL gegevens.bestelling (ID INT PRIMAIRE SLEUTEL AUTO_INCREMENT NIET NULL, Item VARCHAR (50) NIET NULL, Prijs VARCHAR (50) NIET NULL);

Laten we wat gegevens aan deze tabel toevoegen. U moet de hieronder getoonde query's uitvoeren in de MySQL-opdrachtregelshell en elke opdracht afzonderlijk op de opdrachtregel uitvoeren of gewoon alle opdrachten in de opdrachtregel in één stap toevoegen. U kunt ook MySQL Workbench GUI gebruiken om gegevens aan de tabel toe te voegen.

Laten we nu de tabel "volgorde" controleren nadat we er waarden in hebben gezet. U kunt hiervoor het SELECT-commando als volgt gebruiken:

>> KIES * UIT gegevens.bestellen;

U kunt zien dat de gegevens zoals verwacht met succes zijn opgeslagen in de tabel "bestellen".

Creëer een onderliggende tabel met DELETE Cascade:

Nu is het de beurt aan een andere tafel genaamd "klant" om te worden gemaakt.

Eerst moet u het trefwoord "CREATE" typen samen met de tabelnaam. Vervolgens moet u veld- of kolomnamen toevoegen samen met hun gegevenstypen. U moet de laatste kolom, die in deze tabel als refererende sleutel wordt gebruikt, dezelfde naam geven als in de vorige tabel. Zoals u weet is de kolom “ID” uit tabel “order” gebruikt als de refererende sleutel in de tabel “klant” als “OrderID”. Daarna moet u het sleutelwoord "CONSTRAINT" toevoegen, dat wordt gebruikt om de FOREIGN-sleutel te initialiseren, samen met de referentie van de vorige tabel. Nu moet u de instructie "DELETE CASCADE" samen met het sleutelwoord "ON" gebruiken.

>> CRE TER TABEL gegevens.klant(CustID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,Naam VARCHAR(45) NOT NULL,OrderID INT NOT NULL,CONSTRAINT order_id_fk FOREIGN KEY(OrderID) REFERENTIES data.bestelling(ID)OP VERWIJDEREN CASCADE);

Nadat de tabel is gemaakt en de DELETE CASCADE met succes op deze tabel is uitgevoerd, is het tijd om enkele waarden in deze tabel in te voegen. Probeer de onderstaande instructies een voor een in de MySQL-opdrachtregelclientshell om dit te doen.

Voer vervolgens het invoegen van query's uit. Het is een punt om de tabel te controleren of de gegevens met succes zijn toegevoegd of niet. Dus probeer dit onderstaande commando om dit te doen:

>> KIES * UIT gegevens.klant;

Hier kunt u een glimp opvangen van de tabeluitvoer waaraan de gegevens efficiënt en zonder fouten of fouten zijn toegewezen.

Records verwijderen:

Wanneer u nu gegevens of rijen uit de bovenliggende tabel verwijdert, worden ook de gegevens of rijen uit de onderliggende tabel verwijderd vanwege de ingeschakelde DELETE CASCADE op de externe sleutel die wordt vermeld in de onderliggende tabel. Laten we eerst de DELETE-query proberen en vervolgens de resultaten controleren. We zullen de gegevens verwijderen uit de tabel "order" waar de "ID" "11" is. Als dezelfde "ID" wordt gevonden in de tabel "klant" in de externe sleutelkolom, "OrderID", dan wordt de relatieve rij of gegevens in de tabel "klant" ook verwijderd. Probeer hiervoor de onderstaande opdracht in de opdrachtregel:

>> VERWIJDEREN UIT gegevens. bestel WHERE ID = '11';

Laten we eerst de bovenliggende tabel controleren. Typ vervolgens het onderstaande SELECT-commando om de resterende records van de tabel "order" op te halen na het verwijderen van enkele records. U zult zien dat het record van de tabel, waar de "ID" "11" was, met succes uit deze tabel is verwijderd. Dit betekent dat de relatieve records met dezelfde ID-waarde, "11", ook uit de onderliggende tabel worden verwijderd.

>> KIES * UIT gegevens.bestellen;

Het ophalen van de records van de onderliggende tabel met het SELECT-commando is net zo eenvoudig als voorheen. Probeer gewoon de onderstaande opdracht en je zult de resultaten hebben.

Bij het verkrijgen van de resultaten kunt u zien dat het record van "CustID" met een waarde van "1" volledig is verwijderd. Dit komt omdat de kolom "OrderID" een waarde van "11" heeft in de eerste rij, wat leidt tot het verwijderen van die rij.

>> KIES * UIT gegevens.klant;

Wanneer u de bovenliggende tabel probeert te verwijderen met het DROP-commando, voorkomt MySQL dat u dit doet. Dit komt omdat de bovenliggende tabel de DELETE CASCADE erop heeft ingeschakeld. Dus om de tafel te laten vallen, moet je eerst de DELETE CASCADE ervan verwijderen.

Conclusie:

We zijn klaar met de uitleg van DELETE CASCADE in MySQL. Probeer meer voorbeelden aan uw einde om het duidelijker te maken.

Top 10 spellen om te spelen op Ubuntu
Het Windows-platform is een van de dominante platforms voor gaming geweest vanwege het enorme percentage games dat tegenwoordig wordt ontwikkeld om Wi...
5 beste arcade-spellen voor Linux
Tegenwoordig zijn computers serieuze machines die worden gebruikt om te gamen. Als je de nieuwe hoge score niet kunt halen, weet je wat ik bedoel. In ...
Strijd om Wesnoth 1.13.6 Ontwikkeling vrijgegeven
Strijd om Wesnoth 1.13.6 die vorige maand werd uitgebracht, is de zesde ontwikkelingsrelease in de 1.13.x-serie en het levert een aantal verbeteringen...