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

Suppression de lignes associées dans une relation plusieurs à plusieurs

Votre demande n'a pas de sens

Les pilotes en tant qu'entités existent séparément des voitures. Les voitures peuvent être conduites par plusieurs conducteurs, les conducteurs peuvent conduire plusieurs voitures. C'est pourquoi vous avez la table plusieurs-plusieurs.

Notez le bit "les conducteurs peuvent conduire plusieurs voitures". Cela signifie que si vous supprimez la ligne Drivers, vous devez supprimer d'autres lignes dans CarDrivers.

Si vous encore voulez faire cela, vous avez besoin d'un déclencheur sur CarDrivers. La CASCADE de Drivers à CarDrivers supprimera d'autres lignes CarDrivers pour vous. Je ne me souviens pas non plus du comportement par défaut pour la récursivité du déclencheur.

Quel gâchis.

Remarque :cela presque est logique si vous avez l'unicité sur l'une des colonnes de la table plusieurs-plusieurs, il devrait s'agir d'une clé étrangère entre Cars et Drivers (Unique on Car signifie "au plus un pilote par voiture" signifie une colonne FK NULLable dans Cars)