Avatar billede chrisrj Forsker
25. januar 2014 - 21:28 Der er 10 kommentarer og
1 løsning

Foreign key constriant virker ikke?

Jeg har oprettet nogle tabeller i min db til min bysamfundssimulator, og prøve nu at fylde data i dem. Men der er problemer med en Foreign key, og jeg kan ikke se hvorfor det ikke skulle virker - selv Visual Studio(express 2010) editoren siger, at min INSERT INTO er korrekt.

Mine tabeller:

MaterialCategory
MCId(primary)
MCName(varchar)

MaterialSubType
MSTId(primary)
MSTName(varchar)

MaterialCategory__SubType <- ja, 2 stk _
MCSTId(primary)
MCId(FK fra MaterialCategory)
MSTId(FK fra MaterialSubType)


Min SQL:
INSERT INTO MaterialCategory__SubType
                        (MCId, MSTId)
SELECT        MaterialCategory.MCId, MaterialSubType.MSTId
FROM            MaterialCategory CROSS JOIN
                        MaterialSubType
WHERE        (MaterialCategory.MCName = 'Wood') AND (MaterialSubType.MSTName = 'Oak' OR
                        MaterialSubType.MSTName = 'Pine')

Screendump af db, sql og fejl:
http://postimg.org/image/3uemoe9md/full/
Avatar billede arne_v Ekspert
25. januar 2014 - 21:40 #1
Fejlen laeses som "du forsoeger at indsaette en raekke med et MSTId som ikke findes i tabellen MaterialSubType".
Avatar billede chrisrj Forsker
25. januar 2014 - 21:57 #2
Ja, men den ER der jo...så hvad er der galt?
Avatar billede chrisrj Forsker
25. januar 2014 - 22:02 #3
Kan det skyldes, at jeg har valgt en forkert datatype til id'erne(uniqueidentifier)?
Avatar billede arne_v Ekspert
25. januar 2014 - 22:09 #4
Hvad returnerer:

SELECT        MaterialCategory.MCId, MaterialSubType.MSTId
FROM            MaterialCategory CROSS JOIN
                        MaterialSubType
WHERE        (MaterialCategory.MCName = 'Wood') AND (MaterialSubType.MSTName = 'Oak' OR
                        MaterialSubType.MSTName = 'Pine')

?
Avatar billede chrisrj Forsker
25. januar 2014 - 22:18 #5
Avatar billede arne_v Ekspert
25. januar 2014 - 22:36 #6
Og de to MSTID'er er i tabellen?

Hm - ja det burde vaere med den SELECT.
Avatar billede chrisrj Forsker
25. januar 2014 - 22:44 #7
Avatar billede arne_v Ekspert
25. januar 2014 - 22:54 #8
Hm. Saa er jeg ogsaa forvirret over den fejl.
Avatar billede chrisrj Forsker
25. januar 2014 - 23:01 #9
Godt du sagde det - nu fandt jeg nemlig fejlen ved at kigge mine FK'er igennem. :)

Det virker uden probs nu.

Jeg takker og bukker for hjælpen - vil du have points for din tid? :)
Avatar billede arne_v Ekspert
26. januar 2014 - 03:10 #10
tjo
Avatar billede chrisrj Forsker
26. januar 2014 - 09:24 #11
Lol, hvis det ikke kan være anderledes? Det kunne det så ikke. ;p
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