Caractéristiques des contraintes de clés étrangères:
Certaines caractéristiques importantes de la contrainte de clé étrangère sont expliquées ci-dessous.
Prérequis:
Avant de créer une contrainte de clé étrangère, vous devez créer une base de données et une table parentale avec la clé principale. Supposons que le nom de la base de données soit 'bibliothèque'Et il contient deux tables de parent nommées'livres' et 'emprunteur'. Établir une connexion avec MySQL Server en utilisant le mysql Client et exécutez les instructions SQL suivantes pour créer la base de données et les tables.
Créer une bibliothèque de bases de données;Définir la contrainte de clé étrangère à l'aide de la création de création
Créer une table nommée 'book_borrow_info'avec des contraintes de clés étrangères en exécutant la déclaration suivante. Ici le book_id Le champ est un clé étrangère pour ce tableau et chaque valeur de ce champ doit exister dans le identifiant domaine de livres tableau. livres est la table parent et book_borrow_info est la table des enfants. Deux restrictions sont également établies avec la clé étrangère ici. Ceux-ci sont Supprimer la cascade et Mettre à jour la cascade. Cela signifie que si une clé primaire supprime ou mettra à jour de la table parent, les enregistrements correspondants liés à l'enfant lié à la clé étrangère seront supprimés ou la clé étrangère sera mise à jour.
Créer une table book_borrow_info (Maintenant, exécutez les instructions SQL suivantes pour insérer certains enregistrements dans les deux tables. La première instruction d'insertion inséra quatre enregistrements dans livres tableau. Les quatre valeurs de identifiant domaine de livres La table sera 1, 2, 3 et 4 pour l'attribut automatique. La deuxième instruction d'insertion inséra quatre enregistrements dans book_borrow_info basé sur identifiant valeur de livres tableau.
Insérer dans les valeurs des livresSi vous essayez d'insérer une valeur dans le champ de clé étrangère de la table enfant qui n'existe pas dans le champ de clé primaire du tableau parent, MySQL générera une erreur. L'instruction SQL suivante générera une erreur car le tableau parent, livres ne contient aucune valeur d'ID dix.
Insérer dans les valeurs Book_Borrow_infoAprès avoir exécuté l'instruction de suppression suivante, lorsque le quatrième enregistrement sera supprimé du livres Tableau puis les enregistrements connexes du book_borrow_info Le tableau sera supprimé automatiquement pour la contrainte de clé étrangère.
Supprimer des livres où id = 4;Définir la contrainte de clé étrangère à l'aide de la déclaration alter
Au début, insérer certains enregistrements dans emprunteurs table et ce tableau sera défini comme une table parentale dans la prochaine MODIFIER déclaration.
Insérer dans les valeurs des emprunteursExécutez ce qui suit MODIFIER déclaration pour définir une autre contrainte de clé étrangère pour book_borrow_info table pour faire la relation avec emprunteurs tableau. Ici, emprunter est défini comme une clé étrangère pour book_borrow_info tableau.
ALTER TABLE Book_Borrow_info Ajouter une contrainte FK_BORORTHER
Clé étrangère (emprunter) références Emprunteurs (ID) sur Delete Cascade sur la mise à jour restreint;
Maintenant, insérez un record dans book_borrow_info avec valide emprunter valeur qui existe dans identifiant domaine de emprunteurs tableau. 157643 La valeur existe dans la table des emprunteurs et l'instruction d'insertion suivante sera exécutée avec succès.
Insérer dans les valeurs Book_Borrow_infoL'instruction d'insertion suivante générera un message d'erreur car la valeur d'ID 195680 n'existe pas dans la table des emprunteurs.
Insérer dans les valeurs Book_Borrow_infoConclusion:
Définir correctement les contraintes de clés étrangères est une tâche très importante pour créer une base de données relationnelle et gérer les données entre les tables de manière appropriée. Connaître les utilisations des contraintes de clés étrangères est très essentielle pour les concepteurs de bases de données. J'espère que cet article aidera les nouveaux concepteurs de bases de données à comprendre le concept de contraintes de clés étrangères et à les appliquer correctement dans leurs tâches.