Bonjour,
Admettons le schéma suivant :
Entre Table1 et Table2 la relation indique "on delete cascade"
Entre Table1 et Table3 la relation indique "on delete cascade"
Entre Table3 et Table2 la relation indique "on delete set NULL"
En ben ça, mssql ne le tolère pas. Apparemment il considère que si on supprime un item de Table1, les ligne correspondantes à Table3 dans Table2 ne pourront plus être mises à jour (NULL sur IDTable3) par la suppression des items dans Table3 via la contrainte entre Table1 et Table3.
J'ai réalisé exactement le même schéma sur MySql et là, c'est OK.
Il me semblerais qu'une contrainte delete cascade soit prioritaire sur une contrainte delete set null.
D'autre part, si l'on supprime un item de Table1, tant les items correspondants dans Table3 que ceux dans Table2 disparaitront. Donc la contrainte delete set null devient caduque dans ce cas...
Qu'est-ce que vous en pensez ???
Ou alors, c'est tellement gros que je n'y vois plus rien...
Bonne journée
Partager