MySQL MariaDB

MySQL DELETE CASCADE

MySQL DELETE CASCADE
Pe MySQL, declarația ON DELETE CASCADE este utilizată pentru a scoate rândurile corespunzătoare din tabelul copil implicit ori de câte ori rândurile sunt eliminate din tabelul părinte. Acesta este un tip relativ de comportament contextual legat de cheile străine.

Presupunând că ați produs două tabele cu o cheie străină într-o relație cu cheie străină, redarea unui tabel părinte și copil. După aceea, o cheie destinată unei CHEI STRĂINE ar trebui fixată pentru ca alta să aibă succes pe parcursul activităților în cascadă, apoi specificăm o declarație ON DELETE CASCADE. Poate că dacă o singură declarație FOREIGN KEY determină ON DELETE CASCADE, funcțiile în cascadă vor declanșa o excepție.

Haideți să înțelegem cum, în cadrul tabelului MySQL, am putea folosi declarația ON DELETE CASCADE.

Trebuie să deschideți linia de comandă MySQL recent instalată Client Shell pentru a continua lucrarea. La deschidere, vi se va cere să introduceți parola pentru a continua să utilizați shell-ul clientului din linia de comandă MySQL, așa cum se adaugă mai jos.

Apoi, vom construi două tabele numite „comandă” și „client”. Ambele tabele reciproce sunt conectate cu funcția de ștergere în cascadă utilizând o cheie străină. O „comandă” este tabelul părinte în acest moment, iar tabela copil este „clientul”. Cu scripturile însoțitoare, împreună cu înregistrările respective, trebuie să construiți ambele tabele. Utilizați comanda „utilizați” de mai jos pentru a selecta baza de date în care doriți să lucrați sau pentru a crea tabele. Aici „date” este baza de date pe care o folosim.

>> utilizați datele;

Creați un tabel părinte:

În primul rând, trebuie să creați tabelul „ordine” împreună cu câmpurile sale folosind comanda CREATE TABLE, așa cum se arată în interogarea de mai jos. Coloana „ID” va fi utilizată în tabelul următor „client” ca cheie străină.

>> CREAȚI date de TABEL.comanda (ID INT PRIMARY KEY AUTO_INCREMENT NOT NULL, Item VARCHAR (50) NOT NULL, Preț VARCHAR (50) NOT NULL);

Să adăugăm câteva date la acest tabel. Trebuie să executați interogările afișate mai jos în linia de comandă MySQL și să executați fiecare comandă individual în linia de comandă sau pur și simplu să adăugați toate comenzile din linia de comandă într-un singur pas. De asemenea, puteți utiliza MySQL Workbench GUI pentru a adăuga date la tabel.

Acum, să verificăm tabelul „ordine” după ce ați introdus valori. Puteți utiliza comanda SELECT în acest scop după cum urmează:

>> SELECT * DIN date.Ordin;

Puteți vedea că datele au fost salvate cu succes în tabelul „ordine” așa cum era de așteptat.

Creați un tabel copil cu DELETE Cascade:

Acum, este rândul să fie creat un alt tabel numit „client”.

Mai întâi, trebuie să tastați cuvântul cheie „CREARE” împreună cu numele tabelului. Apoi, trebuie să adăugați nume de câmpuri sau coloane împreună cu tipurile lor de date. Trebuie să denumiți ultima coloană, care va fi utilizată ca cheie externă în acest tabel, la fel cum ați numit-o în tabelul anterior. După cum știți, coloana „ID” din tabelul „comandă” a fost utilizată ca cheie externă în tabelul „client” ca „ID comandă”. După aceea, trebuie să adăugați cuvântul cheie „CONSTRAINT”, care este utilizat pentru a inițializa cheia FOREIGN, împreună cu referința tabelului anterior. Acum trebuie să utilizați declarația „DELETE CASCADE” împreună cu cuvântul cheie „ON”.

>> CREAȚI date de TABEL.client (CustID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, Nume VARCHAR (45) NOT NULL, OrderID INT NOT NULL, CONSTRAINT order_id_fk REFERINȚE CHEIE STRĂINĂ (OrderID).comanda (ID) PE ȘTERGEREA CASCADEI);

După ce tabela a fost creată și ȘTERGEREA CASCADEI a fost exercitată cu succes asupra acestui tabel, este timpul să introduceți câteva valori în acest tabel. Încercați instrucțiunile de mai jos unul câte unul în shell-ul clientului din linia de comandă MySQL pentru a face acest lucru.

Ulterior, efectuați inserarea interogărilor. Este un punct să verificați tabelul dacă datele au fost adăugate cu succes sau nu. Deci, încercați această comandă de mai jos pentru a face acest lucru:

>> SELECT * DIN date.client;

Aici puteți vedea o ieșire a tabelului că datele îi sunt atribuite în mod eficient și fără nicio greșeală sau eroare.

Ștergeți înregistrările:

Acum, atunci când ștergeți orice date sau rând din tabelul părinte, acesta va șterge, de asemenea, datele sau rândul din tabelul copil datorită activării ȘTERGERE CASCADE pe cheia externă menționată în tabelul copil. Să încercăm mai întâi interogarea ȘTERGERE, apoi să verificăm rezultatele. Vom șterge datele din tabelul „comandă” unde „ID” este „11”. Dacă același „ID” va fi găsit în tabelul „client” din coloana cu cheie străină, „OrderID”, atunci rândul sau datele relative din tabelul „client” vor fi șterse. Încercați comanda de mai jos din linia de comandă pentru a face acest lucru:

>> ȘTERGEȚI DIN date. comanda WHERE ID = '11';

Mai întâi, să verificăm tabelul părinte. Apoi, tastați comanda SELECT găsită mai jos pentru a prelua înregistrările rămase ale tabelului „ordine” ”după ștergerea unor înregistrări. Veți vedea că înregistrarea tabelului, unde „ID-ul” era „11”, a fost ștearsă cu succes din acest tabel. Aceasta înseamnă că înregistrările relative ale aceleiași valori ID, „11”, ar fi șterse și din tabelul copil.

>> SELECT * DIN date.Ordin;

Preluarea înregistrărilor tabelului copil folosind comanda SELECT este la fel de simplă ca și înainte. Încercați doar comanda de mai jos și veți obține rezultatele.

La obținerea rezultatelor, puteți vedea că înregistrarea „CustID” având o valoare „1” care a fost ștearsă complet. Acest lucru se datorează faptului că coloana „OrderID” are o valoare „11” în primul său rând, ceea ce duce la ștergerea acelui rând.

>> SELECT * DIN date.client;

Când încercați să renunțați la tabelul părinte folosind comanda DROP, MySQL vă va împiedica să faceți acest lucru. Acest lucru se datorează faptului că tabelul părinte a activat ȘTERGEREA CASCADEI pe acesta. Deci, pentru a renunța la masă, trebuie mai întâi să eliminați ȘTERGEREA CASCADEI din ea.

Concluzie:

Am terminat cu explicația DELETE CASCADE în MySQL. Pentru a fi mai clar, încercați mai multe exemple la sfârșitul dvs.

How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...
OpenTTD vs Simutrans
Creating your own transport simulation can be fun, relaxing and extremely enticing. That's why you need to make sure that you try out as many games as...