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
WBOYavant
2023-09-03 21:17:02652parcourir

如果我从 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)

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`))

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer