MySQL MariaDB

MySQL VYMAZAŤ KASKÁDU

MySQL VYMAZAŤ KASKÁDU
Na MySQL sa príkaz ON DELETE CASCADE používa na implicitné vybratie zodpovedajúcich riadkov z podradenej tabuľky vždy, keď sa riadky odstránia z nadradenej tabuľky. Toto je relatívny typ kontextového správania súvisiaceho s cudzím kľúčom.

Za predpokladu, že ste vytvorili dve tabuľky s CUDZÍM KĽÚČOM vo vzťahu cudzieho kľúča, čím ste vykreslili jednu tabuľku rodiča a potomka. Potom by mal byť určený pre jeden ZAHRANIČNÝ KĽÚČ, aby bol ďalší úspešný počas kaskádových aktivít, potom určíme príkaz ON DELETE CASCADE. Možno, ak jediný príkaz FOREIGN KEY určí KASKÁDU ON DELETE, kaskádové funkcie vyvolajú výnimku.

Pochopme, ako v celej tabuľke MySQL môžeme použiť príkaz ON DELETE CASCADE.

Ak chcete pokračovať v práci, musíte otvoriť nedávno nainštalovaný príkazový riadok MySQL Client Shell. Po otvorení budete požiadaní o zadanie hesla, aby ste mohli naďalej používať shell klienta príkazového riadku MySQL, ako je uvedené nižšie.

Ďalej vytvoríme dve tabuľky s názvom „objednávka“ a „zákazník“. Obe vzájomné tabuľky sú spojené s funkciou mazania kaskády s využitím cudzieho kľúča. „Objednávka“ je v tomto okamihu nadradenou tabuľkou a podradená tabuľka je „zákazníkom“. So sprievodnými skriptmi musíte spolu s príslušnými záznamami zostaviť obe tabuľky. Pomocou nasledujúceho príkazu „use“ vyberte databázu, v ktorej chcete pracovať, alebo v ktorej vytvorte tabuľky. Tu sú „údajmi“ databáza, ktorú používame.

>> údaje o použití;

Vytvoriť nadradenú tabuľku:

Najskôr musíte vytvoriť príkaz „order“ spolu s jeho poľami pomocou príkazu CREATE TABLE, ako je uvedené v nasledujúcom dotaze. Stĺpec „ID“ sa použije v nasledujúcej tabuľke „zákazník“ ako cudzí kľúč.

>> VYTVORIŤ TABUĽKU údajov.objednávka (ID INT PRIMÁRNY KLÍČ AUTO_INCREMENT NIE JE NULL, položka VARCHAR (50) NIE NULL, cena VARCHAR (50) NIE NULL);

Pridajme k tejto tabuľke nejaké údaje. Musíte vykonať nižšie uvedené dotazy v prostredí príkazového riadku MySQL a spustiť každý príkaz jednotlivo v príkazovom riadku alebo jednoducho pridať všetky príkazy v príkazovom riadku v jednom kroku. Na pridanie údajov do tabuľky môžete použiť aj grafické rozhranie MySQL Workbench.

Po zadaní hodnôt skontrolujme tabuľku „order“. Príkaz SELECT môžete na tento účel použiť nasledovne:

>> SELECT * FROM data.objednať;

Vidíte, že dáta boli podľa očakávania úspešne uložené do „objednávky“ tabuľky.

Vytvorte podradenú tabuľku s DELETE Cascade:

Teraz je rad na vytvorení ďalšej tabuľky s názvom „zákazník“.

Najskôr musíte spolu s názvom tabuľky zadať kľúčové slovo „VYTVORIŤ“. Potom musíte pridať názvy polí alebo stĺpcov spolu s ich dátovými typmi. Posledný stĺpec, ktorý sa použije ako cudzí kľúč v tejto tabuľke, musíte pomenovať rovnako, ako ste ho pomenovali v predchádzajúcej tabuľke. Ako viete, stĺpec „ID“ z tabuľky „objednávka“ bol použitý ako cudzí kľúč v tabuľke „zákazník“ ako „ID objednávky“. Potom musíte pridať kľúčové slovo „CONSTRAINT“, ktoré sa používa na inicializáciu ZAHRANIČNÉHO kľúča, spolu s odkazom na predchádzajúcu tabuľku. Teraz musíte spolu s kľúčovým slovom „ON“ použiť príkaz „DELETE CASCADE“.

>> VYTVORTE TABUĽKU údajov.zákazník (CustID INT NIE JE NULL AUTO_INCREMENT PRIMÁRNY KLÍČ, meno VARCHAR (45) NIE NULL, ID objednávky INT NIE NULL, OBMEDZENIE order_id_fk ZAHRANIČNÝ KLÍČ (ID objednávky) REFERENČNÉ údaje.objednávka (ID) NA VYMAZANIE KASKÁDY);

Po vytvorení tabuľky a úspešnom vykonaní príkazu DELETE CASCADE v tejto tabuľke je čas vložiť do tejto tabuľky niektoré hodnoty. Vyskúšajte to nižšie uvedené pokyny jeden po druhom v klientskom prostredí príkazového riadku MySQL.

Následne urobte vloženie dotazov. Je potrebné skontrolovať v tabuľke, či boli údaje úspešne pridané alebo nie. Skúste to teda urobiť pod príkazom:

>> SELECT * FROM data.zákazník;

Tu môžete nahliadnuť do výstupu tabuľky, že k nej sú dáta efektívne priradené a bez akejkoľvek chyby alebo chyby.

Odstrániť záznamy:

Keď teraz odstránite akékoľvek údaje alebo riadok z nadradenej tabuľky, odstránia sa tiež údaje alebo riadok z podradenej tabuľky z dôvodu povoleného príkazu DELETE CASCADE na cudzom kľúči uvedenom v podradenej tabuľke. Najskôr vyskúšame dotaz DELETE a potom skontrolujeme výsledky. Budeme mazať údaje z tabuľky „objednávka“, kde „ID“ je „11“. Ak sa rovnaké „ID“ nachádza v tabuľke „zákazník“ v stĺpci cudzieho kľúča „ID objednávky“, potom sa vymaže aj relatívny riadok alebo údaje v tabuľke „zákazník“. Vyskúšajte to pomocou nižšie uvedeného príkazu v príkazovom riadku:

>> ODSTRÁNIŤ Z údajov. objednávka WHERE ID = '11';

Najskôr skontrolujme nadradenú tabuľku. Potom zadajte príkaz SELECT, ktorý sa nachádza nižšie, aby sa odstránili zostávajúce záznamy „objednávky“ tabuľky po odstránení niektorých záznamov. Uvidíte, že záznam tabuľky, kde „ID“ bolo „11“, bol z tejto tabuľky úspešne odstránený. To znamená, že relatívne záznamy tej istej hodnoty ID, „11“, by boli odstránené aj z podradenej tabuľky.

>> SELECT * FROM data.objednať;

Získanie záznamov podradenej tabuľky pomocou príkazu SELECT je také jednoduché ako predtým. Vyskúšajte nasledujúci príkaz a budete mať výsledky.

Po získaní výsledkov uvidíte, že záznam „CustID“ s hodnotou „1“, ktorý bol úplne odstránený. Je to tak preto, lebo stĺpec „OrderID“ má v prvom riadku hodnotu „11“, čo vedie k odstráneniu tohto riadku.

>> SELECT * FROM data.zákazník;

Keď sa pokúsite zrušiť nadradenú tabuľku pomocou príkazu DROP, MySQL vám v tom zabráni. Je to preto, lebo nadradená tabuľka v nej povolila VYMAZAŤ KASKÁDU. Takže aby ste tabuľku odhodili, musíte z nej najskôr odstrániť DELETE CASCADE.

Záver:

Urobili sme vysvetlenie príkazu DELETE CASCADE v MySQL. Aby ste to objasnili, skúste na konci viac príkladov.

Hry Ako sťahovať a prehrávať Sid Meier's Civilization VI v systéme Linux
Ako sťahovať a prehrávať Sid Meier's Civilization VI v systéme Linux
Úvod do hry Civilization 6 predstavuje moderné poňatie klasického konceptu predstaveného v sérii hier Age of Empires. Myšlienka bola dosť jednoduchá; ...
Hry Ako inštalovať a hrať Doom na Linuxe
Ako inštalovať a hrať Doom na Linuxe
Úvod do Doom Séria Doom vznikla v 90. rokoch po vydaní pôvodného Doomu. Bol to okamžitý hit a od tej doby herná séria získala množstvo ocenení a origi...
Hry Vulkan pre používateľov systému Linux
Vulkan pre používateľov systému Linux
S každou novou generáciou grafických kariet vidíme, že vývojári hier posúvajú hranice grafickej vernosti a prichádzajú o krok bližšie k fotorealizmu. ...