Caratteristiche dei vincoli chiave stranieri:
Di seguito sono spiegate alcune importanti caratteristiche del vincolo di chiave straniera.
Prerequisito:
Prima di creare un vincolo di chiave esterna, è necessario creare un database e una tabella principale con la chiave primaria. Supponiamo che il nome del database sia 'biblioteca'E contiene due tabelle principali denominate'libri' E 'mutuatario'. Fare una connessione con MySQL Server utilizzando il mysql client ed esegui le seguenti istruzioni SQL per creare il database e le tabelle.
Crea libreria di database;Definire il vincolo di chiave estera usando la dichiarazione Crea
Crea una tabella chiamata 'book_borrow_info'Con vincoli chiave estere eseguendo la seguente dichiarazione. Qui, il Book_id Il campo è un Chiave straniera per questa tabella e ogni valore di questo campo deve esistere nel id campo di libri tavolo. libri è la tabella dei genitori e book_borrow_info è il tavolo dei bambini. Qui sono anche impostate due restrizioni con la chiave estera. Questi sono Elimina Cascade E Aggiorna Cascade. Ciò significa che se una chiave primaria rimuoverà o si aggiornerà dalla tabella principale, i record corrispondenti relativi alla tabella dei figli relativi alla chiave esterna verranno rimossi o la chiave esterna verrà aggiornata.
Crea table book_borrow_info (Ora, esegui le seguenti istruzioni SQL per inserire alcuni record in entrambe le tabelle. La prima istruzione insert inserirà quattro record in libri tavolo. I quattro valori di id campo di libri La tabella sarà 1, 2, 3 e 4 per l'attributo di incremento automatico. La seconda istruzione insert inserirà quattro record in book_borrow_info basato sul id valore di libri tavolo.
Inserisci i valori dei libriSe si tenta di inserire un valore nel campo della chiave esterna della tabella figlio che non esiste nel campo chiave primario della tabella principale, MySQL genererà un errore. La seguente istruzione SQL genererà un errore perché la tabella principale, libri non contiene alcun valore ID 10.
Inserisci i valori Book_Borrow_infoDopo aver eseguito la seguente istruzione ELETE, quando il quarto record verrà rimosso dal libri tabella quindi i record correlati dal book_borrow_info La tabella verrà rimossa automaticamente per il vincolo della chiave esterna.
Elimina dai libri in cui id = 4;Definire il vincolo di chiave estera usando la dichiarazione alter
All'inizio, inserisci alcuni record in mutuatari La tabella e questa tabella verranno definite come tabella genitore nella prossima Altera dichiarazione.
Inserire i valori dei mutuatariEseguire quanto segue Altera Dichiarazione per impostare un altro vincolo a chiave esterna per book_borrow_info tavolo con cui fare la relazione con mutuatari tavolo. Qui, Borrow_id è definito come una chiave estera per book_borrow_info tavolo.
Alter table book_borrow_info aggiungi vincolo fk_borrower
Chiave straniera (Borrow_id) Riferimenti Mutuars (ID) su Elimina Cascade su Aggiornamento Limite;
Ora, inserisci un record in book_borrow_info con valido Borrow_id valore che esiste in id campo di mutuatari tavolo. 157643 Il valore esiste nella tabella dei mutuatari e la seguente dichiarazione di insert verrà eseguita correttamente.
Inserisci i valori Book_Borrow_infoLa seguente istruzione insert genererà un messaggio di errore perché il valore ID 195680 non esiste nella tabella dei mutuatari.
Inserisci i valori Book_Borrow_infoConclusione:
La definizione corretta dei vincoli chiave estere è un compito molto importante per la creazione di un database relazionale e gestire i dati tra le tabelle in modo appropriato. Conoscere gli usi dei vincoli chiave stranieri è molto essenziale per i progettisti di database. Spero che questo articolo aiuti i nuovi progettisti di database a comprendere il concetto di vincoli chiave stranieri e ad applicarli correttamente nelle loro attività.