MySQL MariaDB

MySQL ELIMINA CASCATA

MySQL ELIMINA CASCATA
Su MySQL, l'istruzione ON DELETE CASCADE viene utilizzata per eliminare implicitamente le righe corrispondenti dalla tabella figlio ogni volta che le righe vengono rimosse dalla tabella padre. Questo è un tipo relativo di comportamento contestuale relativo alla chiave esterna.

Supponendo di aver prodotto due tabelle con una FOREIGN KEY all'interno di una relazione di chiave esterna, il rendering di una tabella padre e figlio. Dopodiché, dovrebbe essere fissata una chiave per una FOREIGN KEY affinché un'altra abbia successo durante le attività a cascata, quindi specifichiamo un'istruzione ON DELETE CASCADE. Forse se una singola istruzione FOREIGN KEY determina ON DELETE CASCADE, le funzioni a cascata attiveranno un'eccezione.

Cerchiamo di capire come in tutta la tabella MySQL, potremmo usare l'istruzione ON DELETE CASCADE.

Devi aprire la shell client da riga di comando di MySQL installata di recente per procedere con il lavoro. All'apertura, ti verrà chiesto di inserire la password per continuare a utilizzare la shell del client da riga di comando MySQL, come indicato di seguito.

Successivamente, creeremo due tabelle chiamate "ordine" e "cliente". Entrambe le tabelle mutue sono collegate con la funzione di eliminazione a cascata utilizzando una chiave esterna. Un "ordine" è la tabella padre a questo punto e la tabella figlio è il "cliente". Con gli script di accompagnamento, insieme ai rispettivi record, devi costruire entrambe le tabelle. Utilizzare il comando "usa" di seguito per selezionare il database in cui si desidera lavorare o creare tabelle all'interno. Qui "data" è il database che stiamo usando.

>> utilizzare i dati;

Crea tabella padre:

Prima di tutto, devi creare l'"ordine" della tabella insieme ai suoi campi utilizzando il comando CREATE TABLE, come mostrato nella query seguente. La colonna "ID" verrà utilizzata nella tabella successiva "cliente" come chiave esterna.

>> CREA dati TABELLA.ordine ( ID INT PRIMARY KEY AUTO_INCREMENT NOT NULL, Articolo VARCHAR(50) NOT NULL, Prezzo VARCHAR(50) NOT NULL);

Aggiungiamo alcuni dati a questa tabella. Devi eseguire le query mostrate di seguito nella shell della riga di comando di MySQL ed eseguire ciascun comando singolarmente nella riga di comando o semplicemente aggiungere tutti i comandi nella riga di comando in un unico passaggio. Puoi anche utilizzare la GUI di MySQL Workbench per aggiungere dati alla tabella.

Ora controlliamo l'"ordine" della tabella dopo aver inserito i valori. È possibile utilizzare il comando SELECT per questo scopo come segue:

>> SELEZIONA * DAI dati.ordine;

Puoi vedere che i dati sono stati salvati con successo nella tabella "ordine" come previsto.

Crea tabella figlio con DELETE Cascade:

Ora è il turno di creare un altro tavolo chiamato "cliente".

Innanzitutto, devi digitare la parola chiave "CREATE" insieme al nome della tabella. Quindi, devi aggiungere i nomi dei campi o delle colonne insieme ai loro tipi di dati. Devi nominare l'ultima colonna, che verrà utilizzata come chiave esterna in questa tabella, come l'hai chiamata nella tabella precedente. Come sapete la colonna "ID" della tabella "order" è stata utilizzata come chiave esterna nella tabella "customer" come "OrderID". Successivamente, è necessario aggiungere la parola chiave "CONSTRAINT", che viene utilizzata per inizializzare la chiave ESTERA, insieme al riferimento della tabella precedente. Ora devi usare l'istruzione "DELETE CASCADE" insieme alla parola chiave "ON".

>> CREA dati TABELLA.customer(CustID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,Name VARCHAR(45) NOT NULL,OrderID INT NOT NULL,CONSTRAINT order_id_fk FOREIGN KEY(OrderID) REFERENCES data.order(ID)ON DELETE CASCADE);

Dopo che la tabella è stata creata e il DELETE CASCADE è stato esercitato con successo su questa tabella, è il momento di inserire alcuni valori in questa tabella. Prova le istruzioni seguenti una per una nella shell del client da riga di comando di MySQL per farlo.

Successivamente, eseguire l'inserimento delle query. È importante controllare la tabella se i dati sono stati aggiunti con successo o meno or. Quindi prova questo comando di seguito per farlo:

>> SELEZIONA * DAI dati.cliente;

Qui puoi dare un'occhiata all'output della tabella che i dati sono assegnati in modo efficiente e senza errori o errori.

Elimina record:

Ora quando elimini qualsiasi dato o riga dalla tabella padre, eliminerà anche i dati o la riga dalla tabella figlio a causa dell'abilitazione DELETE CASCADE sulla chiave esterna menzionata nella tabella figlio. Proviamo prima la query DELETE, quindi controlliamo i risultati. Cancelleremo i dati dalla tabella "ordine" dove "ID" è "11". Se lo stesso “ID” verrà trovato nella tabella “cliente” nella colonna chiave esterna, “IDOrdine”, allora anche la relativa riga o i dati nella tabella “cliente” verranno cancellati. Prova il comando seguente nella riga di comando per farlo:

>> CANCELLA DAI dati. ordine WHERE ID = '11';

Per prima cosa, controlliamo la tabella genitore. Quindi, digita il comando SELECT che trovi di seguito per recuperare i record rimanenti della tabella "ordine" dopo l'eliminazione di alcuni record. Vedrai che il record della tabella, dove "ID" era "11", è stato eliminato con successo da questa tabella. Ciò significa che i relativi record con lo stesso valore ID, "11", verrebbero eliminati anche dalla tabella figlio.

>> SELEZIONA * DAI dati.ordine;

Recuperare i record della tabella figlio utilizzando il comando SELECT è semplice come prima. Prova il comando qui sotto e avrai i risultati.

Dopo aver ottenuto i risultati, puoi vedere che il record di "CustID" con un valore di "1" è stato completamente eliminato. Questo perché la colonna "OrderID" ha un valore di "11" nella sua prima riga, il che porta alla cancellazione di quella riga.

>> SELEZIONA * DAI dati.cliente;

Quando provi a eliminare la tabella padre utilizzando il comando DROP, MySQL ti impedirà di farlo. Questo perché la tabella padre ha abilitato il DELETE CASCADE su di essa. Quindi, per eliminare la tabella, devi prima rimuovere DELETE CASCADE da essa.

Conclusione:

Abbiamo finito con la spiegazione di DELETE CASCADE in MySQL. Per renderlo più chiaro, prova altri esempi alla fine.

I migliori giochi da giocare con il tracciamento delle mani
Oculus Quest ha recentemente introdotto la grande idea del tracciamento manuale senza controller. Con un numero sempre crescente di giochi e attività ...
Come mostrare l'overlay OSD in app e giochi Linux a schermo intero
Giocare a giochi a schermo intero o utilizzare app in modalità a schermo intero senza distrazioni può tagliarti fuori dalle informazioni di sistema ri...
Le 5 migliori carte di acquisizione del gioco
Abbiamo tutti visto e amato i giochi in streaming su YouTube. PewDiePie, Jakesepticye e Markiplier sono solo alcuni dei migliori giocatori che hanno g...