Ich habe eine Tabelle von Benutzern (Benutzer), und müssen eine neue Tabelle erstellen, um zu verfolgen, welche Benutzer andere Benutzer bezeichnet haben. Ich erstelle also im Grunde eine Viele-zu-Viele-Beziehung zwischen Zeilen in derselben Tabelle.Sql Server-Fehler nicht verstehen
Also ich versuche, Tabelle UserReferrals mit den Spalten UserId und UserReferredId zu erstellen. Ich habe beide Spalten zu einem zusammengesetzten Primärschlüssel gemacht. Und beide Spalten sind Fremdschlüssel, die mit User.UserID verknüpft sind.
Da Löschen eines Benutzers auch die Beziehung löschen sollte, legte ich beide Fremdschlüssel zu kaskadieren löscht. Wenn der Benutzer gelöscht wird, sollten alle zugehörigen Zeilen in UserReferrals ebenfalls gelöscht werden.
Aber das gibt mir die Meldung:
'User' table saved successfully 'UserReferrals' table Unable to create relationship 'FK_UserReferrals_User'. Introducing FOREIGN KEY constraint 'FK_UserReferrals_User' on table 'UserReferrals' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints. Could not create constraint. See previous errors.
ich diesen Fehler nicht erhalten. Ein kaskadierendes Löschen löscht nur die Zeile mit dem Fremdschlüssel, oder? Wie kann es "zyklische Kaskadenpfade" verursachen?
Danke für irgendwelche Tipps.
Sind Sie absolut sicher, dass Sie nicht versehentlich eine der Fremdschlüsseleinschränkungen rückwärts eingerichtet haben? –
Ich habe gerade nochmal nach einem guten Maß gesucht. Beide Spalten zeigen die Benutzertabelle als Primärschlüsseltabelle und UserReferrals als Fremdschlüsseltabelle an. –