Maison > base de données > tutoriel mysql > Que se passe-t-il si je supprime une ligne de la table parent MySQL ?

Que se passe-t-il si je supprime une ligne de la table parent MySQL ?

WBOY
Libérer: 2023-09-03 21:17:02
avant
664 Les gens l'ont consulté

如果我从 MySQL 父表中删除一行会发生什么?

Lorsque la ligne est supprimée de la table parent, si les données de la ligne sont utilisées dans la table enfant, MySQL générera une erreur en raison de l'échec de la contrainte FOREIGN KEY. 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 supprimer les lignes de la table « client » qui sont utilisées dans la sous-table « commandes ». Cela peut être démontré en supprimant les valeurs de la table parent 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 de supprimer les lignes avec id = 1 ou id = 2 de la table parent "customer" (puisque ces deux sont utilisés dans la ligne de la table enfant), MySQL générera l'erreur suivante car la contrainte de clé étrangère a échoué.

mysql> Delete from customer where id = 1;
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`query`.`orders`, CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`id`)REFERENCES `customer` (`id`))

mysql> Delete from customer where id = 2;
ERROR 1451 (23000): Cannot delete or update a parent 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