Avatar billede evilfish Nybegynder
25. marts 2009 - 17:05 Der er 1 løsning

Mange fremmed nøgler fejler i oprettelse

Hej eksperter

Jeg 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.
Avatar billede evilfish Nybegynder
20. april 2009 - 08:38 #1
Spørgsmål ikke relevant længere
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB