Mysql Usuń kaskadę

Mysql Usuń kaskadę
W MySQL oświadczenie o Delete Cascade jest używane do wyciągania odpowiednich wierszy z tabeli dziecięcej domyślnie, gdy rzędy zostaną usunięte z tabeli nadrzędnej. Jest to względny rodzaj zachowania kontekstowego związanego z kluczami obcy.

Zakładając, że wyprodukowałeś dwie tabele z kluczem obcego w relacji obce klucz, czyniąc jeden tabelę rodziców i dzieci. Następnie powinien zostać ustalony na jeden klucz obcego, aby inny odniósł sukces podczas działań kaskadowych, a następnie określamy oświadczenie ON DELETE Cascade. Być może jeśli pojedyncze oświadczenie klucza obcego określa kaskadę ON, funkcje kaskadowe uruchomią wyjątek.

Przyjrzyjmy się, jak w całej tabeli MySQL moglibyśmy użyć instrukcji On Delete Cascade.

Musisz otworzyć niedawno zainstalowaną powłokę klienta linii poleceń MySQL, aby kontynuować pracę. Po otwarciu zostaniesz poproszony o wprowadzenie hasła, aby kontynuować korzystanie.

Następnie zbudujemy dwa tabele o nazwie „zamów” i „klient”. Obie wzajemne tabele są połączone z funkcją delete Cascade przy użyciu obcego klucza. „Zamówienie” to w tym momencie tabela nadrzędna, a tabela dziecięca jest „klientem”. Z towarzyszącymi skryptami, wraz z odpowiednimi rekordami, musisz skonstruować oba tabele. Użyj poniższego polecenia „Użyj”, aby wybrać bazę danych, w której chcesz pracować lub utworzyć tabele w środku. Tutaj „Dane” to baza danych, której używamy.

>> Używaj danych;

Utwórz tabelę nadrzędną:

Po pierwsze, musisz utworzyć tabelę „Zamów” wraz z jej pól za pomocą polecenia Utwórz tabelę, jak pokazano w poniższym zapytaniu. Kolumna „ID” zostanie użyta w następnej tabeli „Klient” jako klucz obcy.

>> Utwórz dane tabeli.kolejność (ID int podstawowy klucz Auto_increment nie null, pozycja varchar (50) nie null, cena varchar (50) nie null);

Dodajmy kilka danych do tej tabeli. Musisz wykonać zapytania poniżej podsycające w linii linii polecenia MySQL i uruchomić każde polecenie indywidualnie w linii poleceń lub po prostu dodać wszystkie polecenia w wierszu poleceń w jednym kroku. Możesz także użyć GUI MySQL Workbench, aby dodać dane do tabeli.

Teraz sprawdźmy tabelę „Zamów” po umieszczeniu w niej wartości. Możesz użyć polecenia Wybierz w tym celu w następujący sposób:

>> Wybierz * z danych.zamówienie;

Widać, że dane zostały pomyślnie zapisane w tabeli „zamówienie” zgodnie z oczekiwaniami.

Utwórz tabelę dziecięcą z delete Cascade:

Teraz jest to kolej na stworzenie kolejnej tabeli o nazwie „Klient”.

Najpierw musisz wpisać słowo kluczowe „Utwórz” wraz z nazwą tabeli. Następnie musisz dodać nazwy pola lub kolumn wraz z ich typami danych. Musisz wymienić ostatnią kolumnę, która będzie używana jako klawisz obcy w tej tabeli, tak samo jak nazwałeś go w poprzedniej tabeli. Jak wiesz, kolumna „id” z tabeli „Zamów” została użyta jako klucz obcy w tabeli „Klient” jako „Orderid”. Następnie musisz dodać słowo kluczowe „Ograniczenie”, które służy do inicjalizacji klucza obcego, wraz z odniesieniem z poprzedniej tabeli. Teraz musisz użyć instrukcji „Usuń kaskadę” wraz ze słowem kluczowym „ON”.

>> Utwórz dane tabeli.klient (Custid Int Not Null Auto_increment Key podstawowy, Nazwa Varchar (45) Not NULL, OrderId Int Not Null, Ograniczenie Order_id_FK Klucz obcy.Zamów (id) na delete Cascade);

Po utworzeniu tabeli, a kaskada usunięcia została pomyślnie wywierana na tę tabelę, nadszedł czas, aby włożyć niektóre wartości do tej tabeli. Wypróbuj poniższe instrukcje jeden po drugim w powładzie klienta linii poleceń MySQL, aby to zrobić.

Następnie wykonaj wprowadzenie zapytań. Jest to punkt do sprawdzenia tabeli, czy dane zostały pomyślnie dodane, czy nie. Więc spróbuj tego poniżej, aby to zrobić:

>> Wybierz * z danych.klient;

Tutaj możesz rzucić okiem na wyjście tabeli, które dane są do niej skutecznie przypisane i bez błędu i błędu.

Usuń rekordy:

Teraz, gdy usuniesz dowolne dane lub wiersz z tabeli nadrzędnej, usunie on również dane lub wiersz z tabeli dziecięcej z powodu włączonej kaskady Usuń na kluczu obce wymienione w tabeli dziecięcej. Wypróbujmy najpierw zapytanie Usuń, a następnie sprawdź wyniki. Będziemy usuwać dane z tabeli „Zamów”, w której „id” to „11”. Jeśli ten sam „id” zostanie znaleziony w tabeli „Klient” w kolumnie klucza zagranicznego „OrderId”, wówczas wierny wiersz lub dane w tabeli „Klient” również zostaną usunięte. Wypróbuj poniżej komenda w wierszu poleceń, aby to zrobić:

>> Usuń z danych. Zamów tam, gdzie id = „11”;

Najpierw sprawdźmy tabelę nadrzędną. Następnie wpisz polecenie Select znalezione poniżej, aby pobrać pozostałe rekordy tabeli „Zamów” ”po usunięciu niektórych rekordów. Zobaczysz, że zapis tabeli, w której „id” był „11”, został pomyślnie usunięty z tej tabeli. Oznacza to, że względne zapisy o tej samej wartości identyfikatora, „11”, zostaną również usunięte z tabeli dziecięcej.

>> Wybierz * z danych.zamówienie;

Pobieranie rekordów tabeli dziecięcej za pomocą polecenia Select jest tak proste jak wcześniej. Po prostu wypróbuj polecenie poniżej, a uzyskasz wyniki.

Po uzyskaniu wyników widać, że zapis „Custid” ma wartość „1”, która została w pełni usunięta. Wynika to z faktu, że kolumna „OrderId” ma wartość „11” w swoim pierwszym rzędzie, co prowadzi do usunięcia tego rzędu.

>> Wybierz * z danych.klient;

Kiedy spróbujesz upuścić tabelę nadrzędną za pomocą polecenia upuść, MySQL uniemożliwi ci to zrobienie. Wynika to z faktu, że tabela nadrzędna włączyła na nią kaskadę Usuń. Aby upuścić stół, musisz najpierw usunąć z niego kaskadę Usuń.

Wniosek:

Zrobiliśmy wyjaśnienie Kaskady Usuń w MySQL. Aby to wyjaśnić, wypróbuj więcej przykładów na końcu.