MySQL Elimina Cascade

MySQL Elimina Cascade
Su MySQL, l'istruzione su Elimina Cascade viene utilizzata per eliminare implicitamente le righe corrispondenti dalla tabella dei bambini ogni volta che vengono rimosse le righe dalla tabella dei genitori. Questo è un tipo relativo di comportamento contestuale correlato alla chiave estera.

Supponendo che tu abbia prodotto due tabelle con una chiave estera all'interno di una relazione a chiave esterna, rendendo una tabella genitore e un bambino. Successivamente, un destinato a una chiave straniera dovrebbe essere fissato per un'altra successo durante le attività a cascata, quindi specifichiamo una dichiarazione su Cascade ELETE. Forse se una singola dichiarazione chiave esterna determina la cascata Elimina On, le funzioni a cascata attiveranno un'eccezione.

Assumiamo come durante la tabella MySQL, potremmo usare l'istruzione Cascade ELETE.

Devi aprire la shell del client di comando mysql recentemente installata per procedere con il lavoro. All'apertura, ti verrà chiesto di inserire la tua password per continuare a utilizzare la shell client di comando MySQL, come aggiunto di seguito.

Successivamente, costruiremo due tavoli chiamati "Ordine" e "Cliente". Entrambe le tabelle comuni sono collegate alla funzione Cascade Elimina utilizzando una chiave esterna. Un "ordine" è la tabella principale a questo punto e la tabella dei figli è il "cliente". Con gli script di accompagnamento, insieme ai rispettivi record, è necessario 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 "dati" è il database che stiamo utilizzando.

>> utilizzare i dati;

Crea la tabella genitore:

Prima di tutto, devi creare la tabella "Ordine" insieme ai suoi campi utilizzando il comando Crea Table, come mostrato nella query seguente. La colonna "ID" verrà utilizzata nella tabella successiva "Cliente" come chiave esterna.

>> Crea dati della tabella.order (id int primario chiave Auto_increment non null, elemento varchar (50) non null, prezzo varchar (50) non null);

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

Ora controlliamo la tabella "ordine" dopo aver messo i valori. È possibile utilizzare il comando seleziona a questo scopo come segue:

>> Seleziona * dai dati.ordine;

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

Crea tabella figlio con Cascade Elimina:

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

Innanzitutto, devi digitare la parola chiave "crea" insieme al nome della tabella. Quindi, devi aggiungere nomi di campo o colonne insieme ai loro tipi di dati. Devi nominare l'ultima colonna, che verrà utilizzata come chiave esterna in questa tabella, la stessa che la hai nominato nella tabella precedente. Come sai, la colonna "ID" dalla tabella "Ordine" è stata utilizzata come chiave esterna nella tabella "Cliente" come "OrderId". Successivamente, devi aggiungere la parola chiave "vincolo", che viene utilizzata per inizializzare la chiave esterna, insieme al riferimento della tabella precedente. Ora devi usare l'istruzione "Elimina cascata" insieme alla parola chiave "on".

>> Crea dati della tabella.Cliente (Custid int non null Auto_InCrement Chiave primaria, nome varchar (45) non null, orderid int non null, vincolo order_id_fk Foreign Key (orderId) References Data.ordine (id) su elimina cascata);

Dopo che la tabella è stata creata e la Cascade Elimina è stata esercitata con successo su questa tabella, è tempo di inserire alcuni valori in questa tabella. Prova le istruzioni seguenti una per una nella shell del client di comando mysql per farlo.

Successivamente, eseguire l'inserimento delle domande. È un punto per verificare la tabella se i dati sono stati aggiunti correttamente o meno. Quindi prova questo sotto comando per farlo:

>> Seleziona * dai dati.cliente;

Qui, puoi avere un'occhiata all'output della tabella che i dati sono assegnati in modo efficiente e senza alcun errore o errore.

Elimina i record:

Ora, quando si elimina i dati o la riga dalla tabella principale, eliminerà anche i dati o la riga dalla tabella dei figli a causa della cascata eliminata abilitata sulla chiave esterna menzionata nella tabella figlio menzionata. Proviamo prima la query Elimina, quindi controlla i risultati. Elimineremo i dati dalla tabella "ordine" in cui "ID" è "11". Se lo stesso "ID" verrà trovato nella tabella "Cliente" nella colonna chiave estera, "OrderId", la riga o i dati relativi nella tabella "Cliente" verranno anche eliminati. Prova il comando in basso nella linea di comando per farlo:

>> Elimina dai dati. ordina dove id = '11';

Innanzitutto, controlliamo la tabella principale. Quindi, digitare il comando Seleziona trovato di seguito per recuperare i restanti record della tabella "ordine" "dopo la cancellazione di alcuni record. Vedrai che il record del tavolo, in cui "ID" era "11", è stato eliminato con successo da questa tabella. Ciò significa che i record relativi dello stesso valore ID, "11", verrebbero eliminati anche dalla tabella dei bambini.

>> Seleziona * dai dati.ordine;

Prendere i record della tabella figlio usando il comando seleziona è semplice come hai fatto prima. Basta provare il comando qui sotto e avrai i risultati.

Ottenendo i risultati, puoi vedere che il record di "Custid" ha un valore di "1" che è stato eliminato completamente. Questo perché la colonna "OrderId" ha un valore di "11" nella sua prima riga, che porta alla cancellazione di quella riga.

>> Seleziona * dai dati.cliente;

Quando provi a far cadere la tabella principale usando il comando drop, MySQL ti impedirà di farlo. Questo perché la tabella principale ha abilitato la cascata elimina su di essa. Quindi per far cadere il tavolo, devi prima rimuovere la cascata di elimina.

Conclusione:

Abbiamo fatto con la spiegazione di Elimina Cascade in MySQL. Per renderlo più chiaro, prova altri esempi alla fine.