J'ai deux tables: Parent, qui a une clé primaire (parentID) et d'autres champs de type varchar (50) et de l'enfant qui est la suivante:suppression en cascade supprime toute table enfant
childID, primary key
parentID, foreign key references Parent (parentID)
otherID, foreign key to another table
- Si je supprime une ligne de l'enfant, pas de problème.
- Si je supprime une ligne de Parent, j'obtiens une erreur de contrainte de clé étrangère sur Child - bon, c'est correct.
Maintenant, je modifie la relation de la clé parentID et mettez en supprimer en cascade au lieu de No Action (J'utilise le studio serveur 2008, un clic droit sur la colonne, choisissez Modifier, puis faites un clic droit sur le et puis choisissez la relation pour les tables Parent/Enfant et ouvrez la section Insertion/Mise à jour des spécifications sous Table Designer)
Si je supprime une ligne de Child, encore une fois, pas de problème. Si je supprime une ligne de Parent, toutes les lignes de la table enfant sont supprimées, même si la plupart d'entre elles pointent vers d'autres parentID.
J'ai hérité de cette base de données et de toutes ses tables. Y a-t-il des paramètres de propriétés qui me manquent? D'après ce que j'ai lu, la suppression en cascade ne devrait supprimer que les lignes enfants qui pointent vers le parent unique que j'ai supprimé de Parent.
Merci.
Ben
Oui, la suppression en cascade supprimera uniquement les lignes enfants associées au parent. Ma meilleure estimation est que vous n'avez pas défini la cascade delete right. Vérifiez à nouveau. – pavanred