29. september 2009 - 17:37Der er
16 kommentarer og 1 løsning
Reference til sammensat primærnøgle
Hejsa Hvordan - hvis det kan lade sig gøre - laver jeg en reference til en sammensat primærnøgle?
PARTS ----- PartVendorID(PK,smallint, not null) PartNumber(PK, VARCHAR(50), not null) partname . . .
Jeg har prøve forskelligt, men her er en af de ting jeg har prøvet: CREATE TABLE PartnerDiscount ( PartnerDiscountID SMALLINT IDENTITY NOT NULL PRIMARY KEY
, F_PartnerID SMALLINT NOT NULL REFERENCES Partners(PartnerID) , F_PartVendorID SMALLINT NOT NULL , F_PartNumber VARCHAR(50) NOT NULL
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Hej Arne Du har fået dine velfortjente point, men da du er lidt inde i dette problem, vil jeg forsøge med et tillægsspørgsmål (jeg vil selvfølgelig give dig point = 60)
Den sammensatte primærnøgle fra Parts(PartVendorID, PartNumber) [Som ikke står til at ændre, uden at ødelægge resten af db-designet]
Opgaven Så ønsker jeg eksempelvis (Opdigtet) at give 10% rabat til Partner = Brugsen, så partner-brugsen får 10% rabat på reservedele fra partvendorid = 3 = NKT
Derfor virker min oprindelige PartnerDiscount ikke. Jeg ønsker kun adgang til den ENE del af primærnøglen (og det kan man vist ikke), Således: CREATE TABLE PartnerDiscount ( PartnerDiscountID SMALLINT IDENTITY NOT NULL PRIMARY KEY
, F_PartnerID SMALLINT NOT NULL REFERENCES Partners(PartnerID) , F_PartVendorID SMALLINT NOT NULL
, F_PartnerID SMALLINT NOT NULL REFERENCES Partners(PartnerID)
, F_PartVendorID SMALLINT NOT NULL -- Nøgle 1 af sammensat primærnøgle fra Parts , DiscountProcent SMALLINT NOT NULL DEFAULT 0
-- Husk at adde en Constraint. FOREIGN KEY(F_PartVendorID, F_PartNumber)... er ikke nok ,CONSTRAINT foobar FOREIGN KEY(F_PartVendorID) REFERENCES Parts(PartVendorID, PartNumber) )
vil jeg få fejlen: Msg 8139, Level 16, State 0, Line 1 Number of referencing columns in foreign key differs from number of referenced columns, table 'PartnerDiscount'.
, F_PartnerID SMALLINT NOT NULL REFERENCES Partners(PartnerID)
, F_PartVendorID SMALLINT NOT NULL -- Nøgle 1 af sammensat primærnøgle fra Parts , DiscountProcent SMALLINT NOT NULL DEFAULT 0
-- Husk at adde en Constraint. FOREIGN KEY(F_PartVendorID, F_PartNumber)... er ikke nok ,CONSTRAINT testbar FOREIGN KEY(F_PartVendorID) REFERENCES Parts(PartVendorID) )
.. og fejlmeddelelsen: Msg 1776, Level 16, State 0, Line 2 There are no primary or candidate keys in the referenced table 'Parts' that match the referencing column list in the foreign key 'testbar'. Msg 1750, Level 16, State 0, Line 2 Could not create constraint. See previous errors.
Synes godt om
Ny brugerNybegynder
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.