Maison >base de données >tutoriel mysql >Lorsque deux tables sont connectées à l'aide de MySQL FOREIGN KEY, comment pouvons-nous dire que les données de la table enfant conservent leur intégrité ?
En fait, les clés étrangères renforcent l'intégrité référentielle et nous aident à maintenir automatiquement la cohérence et l'intégrité des données. Cela peut être compris à l'aide des exemples des deux tableaux « client » et « commandes ». Ici, « client » est la table parent et « commandes » est la table enfant. Nous ne pouvons pas créer de commandes pour des clients inexistants. Cela peut être démontré en insérant des valeurs dans les deux tableaux comme indiqué ci-dessous -
mysql> Select * from Customer; +----+--------+ | id | name | +----+--------+ | 1 | Gaurav | | 2 | Raman | | 3 | Harshit| | 4 | Aarav | +----+--------+ 4 rows in set (0.00 sec) mysql> Select * from orders; +-----------+-------------+------+ | order_id | product | id | +-----------+-------------+------+ | 100 | Notebook | 1 | | 110 | Pen | 1 | | 120 | Book | 2 | | 130 | Charts | 2 | +-----------+-------------+------+ 4 rows in set (0.00 sec)
Maintenant, supposons que nous essayions d'insérer la valeur d'un client inexistant dans le tableau "commandes" (l'identifiant 10 n'existe pas dans le "client " table), alors MySQL générera une erreur en raison de l'erreur suivante : Contrainte de clé étrangère.
mysql> insert into orders values(400, 'Notebook',10); ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`query`.`orders`, CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`id`) REFERENCES `customer` (`id`))
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!