Maison > base de données > tutoriel mysql > le corps du texte

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é ?

王林
Libérer: 2023-08-25 19:45:25
avant
746 Les gens l'ont consulté

当两个表用 MySQL FOREIGN KEY 连接时,怎么能说子表中的数据保持了完整性呢?

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)
Copier après la connexion

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`))
Copier après la connexion

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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!