Za předpokladu, že jste vytvořili dvě tabulky se ZAHRANIČNÍM KLÍČEM uvnitř vztahu cizího klíče, čímž se vykreslí jedna nadřazená a podřízená tabulka. Poté by měl být určen pro jeden ZAHRANIČNÍ KLÍČ, aby byl další úspěšný v průběhu kaskádových aktivit, poté určíme příkaz ON DELETE CASCADE. Možná pokud jeden příkaz FOREIGN KEY určuje KASKÁDU ZMAZAT, kaskádové funkce vyvolají výjimku.
Uchopme, jak v celé tabulce MySQL můžeme použít příkaz ON DELETE CASCADE.
Chcete-li pokračovat v práci, musíte otevřít nedávno nainstalovaný klientský shell MySQL z příkazového řádku. Po otevření budete požádáni o zadání hesla, abyste mohli pokračovat v používání klientského prostředí příkazového řádku MySQL, jak je uvedeno níže.
Dále vytvoříme dvě tabulky zvané „objednávka“ a „zákazník“. Obě vzájemné tabulky jsou spojeny s funkcí mazání kaskády s využitím cizího klíče. „Objednávka“ je v tomto okamžiku nadřazená tabulka a podřízená tabulka je „zákazník“. S doprovodnými skripty musíte společně s příslušnými záznamy sestrojit obě tabulky. Pomocí níže uvedeného příkazu „use“ vyberte databázi, ve které chcete pracovat, nebo v ní vytvořte tabulky. Zde „data“ představují databázi, kterou používáme.
>> údaje o použití;
Vytvořit nadřazenou tabulku:
Nejprve musíte vytvořit tabulku „order“ a její pole pomocí příkazu CREATE TABLE, jak je znázorněno v níže uvedeném dotazu. Sloupec „ID“ bude použit v další tabulce „zákazník“ jako cizí klíč.
>> CREATE TABLE data.order (ID INT PRIMARY KEY AUTO_INCREMENT NOT NULL, Item VARCHAR (50) NOT NULL, Price VARCHAR (50) NOT NULL);
Přidejte k této tabulce některá data. Musíte provést níže uvedené dotazy v prostředí příkazového řádku MySQL a spustit každý příkaz samostatně v příkazovém řádku nebo jednoduše přidat všechny příkazy v příkazovém řádku v jednom kroku. K přidání dat do tabulky můžete také použít grafické uživatelské rozhraní MySQL Workbench.
Nyní po zadání hodnot zkontrolujte tabulku „order“. Pro tento účel můžete použít příkaz SELECT následujícím způsobem:
>> SELECT * FROM data.objednat;Vidíte, že data byla úspěšně uložena do tabulky „pořadí“ podle očekávání.
Vytvořit podřízenou tabulku s DELETE Cascade:
Nyní je řada na další tabulce s názvem „zákazník“, která má být vytvořena.
Nejprve musíte zadat klíčové slovo „VYTVOŘIT“ spolu s názvem tabulky. Poté musíte přidat názvy polí nebo sloupců spolu s jejich datovými typy. Musíte pojmenovat poslední sloupec, který bude použit jako cizí klíč v této tabulce, stejně jako jste jej pojmenovali v předchozí tabulce. Jak víte, sloupec „ID“ z tabulky „order“ byl použit jako cizí klíč v tabulce „customer“ jako „OrderID“. Poté musíte přidat klíčové slovo „CONSTRAINT“, které se používá k inicializaci ZAHRANIČNÍHO klíče, spolu s odkazem na předchozí tabulku. Nyní musíte použít příkaz „DELETE CASCADE“ spolu s klíčovým slovem „ON“.
>> CREATE TABLE data.zákazník (CustID INT NENÍ NULL AUTO_INCREMENT PRIMÁRNÍ KLÍČ, název VARCHAR (45) NENÍ NULL, ID objednávky INT NENÍ NULL, OMEZENÍ order_id_fk ZAHRANIČNÍ KLÍČ (ID objednávky) REFERENČNÍ údaje.objednávka (ID) ON DELETE CASCADE);
Poté, co byla tabulka vytvořena a v této tabulce bylo úspěšně provedeno VYMAZAT CASCADE, je čas do této tabulky vložit některé hodnoty. Postupujte podle níže uvedených pokynů jeden po druhém v prostředí klienta příkazového řádku MySQL.
Následně proveďte vložení dotazů. Je na místě zkontrolovat tabulku, zda byla data úspěšně přidána nebo ne. Zkuste to tedy provést pod příkazem:
>> SELECT * FROM data.zákazník;Zde můžete nahlédnout do výstupu tabulky, že mu jsou data efektivně přiřazena a bez jakékoli chyby nebo chyby.
Smazat záznamy:
Nyní, když odstraníte všechna data nebo řádek z nadřazené tabulky, odstraní se také data nebo řádek z podřízené tabulky kvůli povolenému příkazu ODSTRANIT KASKA na cizím klíči uvedeném v podřízené tabulce. Nejprve zkusme dotaz SMAZAT a poté zkontrolujeme výsledky. Budeme mazat data z tabulky „objednávka“, kde „ID“ je „11“. Pokud bude stejné „ID“ nalezeno v tabulce „zákazník“ ve sloupci cizího klíče „OrderID“, bude odstraněn také relativní řádek nebo data v tabulce „zákazník“. Vyzkoušejte následující příkaz v příkazovém řádku:
>> ODSTRANIT FROM data. objednat WHERE ID = '11';
Nejprve zkontrolujeme nadřazenou tabulku. Poté zadejte níže uvedený příkaz SELECT a po odstranění některých záznamů načtěte zbývající záznamy „objednávky“ tabulky. Uvidíte, že záznam tabulky, kde „ID“ bylo „11“, byl z této tabulky úspěšně odstraněn. To znamená, že relativní záznamy stejné hodnoty ID, „11“, budou také odstraněny z podřízené tabulky.
>> SELECT * FROM data.objednat;
Načítání záznamů podřízené tabulky pomocí příkazu SELECT je stejně jednoduché jako dříve. Vyzkoušejte níže uvedený příkaz a získáte výsledky.
Po získání výsledků uvidíte, že záznam „CustID“ s hodnotou „1“, který byl zcela smazán. Je to proto, že sloupec „OrderID“ má v prvním řádku hodnotu „11“, což vede k odstranění tohoto řádku.
>> SELECT * FROM data.zákazník;
Když se pokusíte zrušit nadřazenou tabulku pomocí příkazu DROP, MySQL vám v tom zabrání. Je to proto, že nadřazená tabulka v ní povolila SMAZAT CASCADE. Chcete-li tedy tabulku zahodit, musíte z ní nejprve odstranit DELETE CASCADE.
Závěr:
Udělali jsme s vysvětlením DELETE CASCADE v MySQL. Aby bylo jasnější, vyzkoušejte na konci více příkladů.