Mysql
 sql >> Base de données >  >> RDS >> Mysql

Suppression d'une table MySQL avec des contraintes de clé étrangère

Malheureusement, la suppression automatique que vous pensez devoir se produire ne se produit pas. Vous devrez supprimer manuellement les lignes du tableau B contenant l'ID de la ligne du tableau A que vous souhaitez supprimer.

Essayez d'ajouter ON DELETE CASCADE à votre définition de colonne de clé étrangère dans le tableau B.

Si vous utilisez Hibernate ou un autre outil ORM, il aurait un mécanisme de "cascade" qui gérerait cela automatiquement. Mais ici, puisque vous vous connectez directement à la base de données, vous devez garder à l'esprit qu'une ligne ne peut pas être supprimée si l'ID de ladite ligne existe dans une autre table en tant que clé étrangère (comme dans votre cas, la clé primaire de A existe dans certaines des rangées de B). Sauf bien sûr si vous spécifiez la propriété ON DELETE CASCADE.