MySQL MariaDB

MySQL SMAZAT CASCADE

MySQL SMAZAT CASCADE
Na MySQL se příkaz ON DELETE CASCADE používá k implicitnímu odebrání odpovídajících řádků z podřízené tabulky, kdykoli jsou řádky odebrány z nadřazené tabulky. Toto je relativní typ kontextového chování souvisejícího s cizím klíčem.

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ů.

Hry Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Nainstalujte si nejnovější Dolphin Emulator pro Gamecube a Wii na Linuxu
Emulátor Dolphin vám umožní hrát vybrané hry Gamecube a Wii na osobních počítačích se systémem Linux (PC). Jako volně dostupný herní emulátor s otevř...
Hry Jak používat GameConqueror Cheat Engine v Linuxu
Jak používat GameConqueror Cheat Engine v Linuxu
Tento článek popisuje průvodce používáním cheatovacího modulu GameConqueror v systému Linux. Mnoho uživatelů, kteří hrají hry v systému Windows, často...
Hry Nejlepší emulátory herních konzolí pro Linux
Nejlepší emulátory herních konzolí pro Linux
Tento článek uvádí seznam populárního softwaru pro emulaci herních konzolí, který je k dispozici pro Linux. Emulace je vrstva softwarové kompatibility...