Mange fremmed nøgler fejler i oprettelse
Hej eksperterJeg har en tabel, hvor jeg har nogle forskellige adgang niveauer som oprettes således:
CREATE TABLE UserAccessTypes
(
AccessLevel INT UNIQUE NOT NULL,
Accessname VARCHAR(50) NOT NULL,
PRIMARY KEY(AccessLevel)
)
Der til har jeg en anden tabel der har 10 kolonner, hvor alle er skal være fremmednøgle referenceret til AccessLevel. Desuden skal værdien opdateres hvis AccessLevel ændres.
Jeg forsøgte at initialisere hver nøgle for sig så ledes:
CREATE TABLE Forum
(
ModuleID INT,
ModuleListID INT,
ForumName varchar(100) NOT NULL,
AddThreadAccess INT Default 0,
EditThreadAccess INT Default 0,
DeleteThreadAccess INT Default 0,
EditOthersThreadAccess INT Default 0,
DeleteOthersThreadAccess INT Default 0,
AddPostAccess INT Default 0,
EditPostAccess INT Default 0,
DeletePostAccess INT Default 0,
EditOthersPostAccess INT Default 0,
DeleteOthersPostAccess INT Default 0,
PRIMARY KEY(ModuleID),
FOREIGN KEY(ModuleID,ModuleListID) REFERENCES dbo.newn4p_Module(ID,ModuleListID),
FOREIGN KEY(AddThreadAccess) REFERENCES dbo.newn4p_UserAccessTypes(AccessLevel) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY(EditThreadAccess) REFERENCES dbo.newn4p_UserAccessTypes(AccessLevel) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY(DeleteThreadAccess) REFERENCES dbo.newn4p_UserAccessTypes(AccessLevel) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY(EditOthersThreadAccess) REFERENCES dbo.newn4p_UserAccessTypes(AccessLevel) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY(DeleteOthersThreadAccess) REFERENCES dbo.newn4p_UserAccessTypes(AccessLevel) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY(AddPostAccess) REFERENCES dbo.newn4p_UserAccessTypes(AccessLevel) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY(EditPostAccess) REFERENCES dbo.newn4p_UserAccessTypes(AccessLevel) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY(DeletePostAccess) REFERENCES dbo.newn4p_UserAccessTypes(AccessLevel) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY(EditOthersPostAccess) REFERENCES dbo.newn4p_UserAccessTypes(AccessLevel) ON UPDATE CASCADE ON DELETE NO ACTION,
FOREIGN KEY(DeleteOthersPostAccess) REFERENCES dbo.newn4p_UserAccessTypes(AccessLevel) ON UPDATE CASCADE ON DELETE NO ACTION,
);
Dette giver mig denne fejl:
Msg 1785, Level 16, State 0, Line 295
Introducing FOREIGN KEY constraint 'FK__Forum__EditT__1785BD09' on table 'newn4p_Forum' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Så vidt jeg kan forstå på den fejl som jeg får er det, at den først fremmed nøgle er godkendt, men den næste fejler, fordi den første peger på den samme som den vil. Hvordan for jeg resten til at blive godkendt? Eller misforstår jeg den fejl?
Beklager på forhånd hvis koden er svær at læse.