Avatar billede kebee Nybegynder
30. marts 2005 - 21:43 Der er 4 kommentarer og
3 løsninger

Flere fremmednøgler

Hej alle

Da vi skulle lave en fremmed nøgle i en tabel, ville den ikke oprette
den. Den skrev noget i retning af, at der ikke var en unik constraint for
fremmenøglen. Problemet kunne løses ved at lave det felt, som den refereret
til om til et unikt. Dette giver os dog nogle andre problemer, så det skal den
helst ikke.

Det virker lidt mærkeligt i vores øjne, for vi lavede først en reference
fra en tabel med bedømmere til en postnummer tabel, hvilket virkede fint.
Da vi derefter skulle vi oprette en fremmednøgle i en anden tabel røg
vi ind i problemet.

Vi har set en sammenhæng imellem, at der hvor det vil lykkes, skal der refereres
til et feldt som alene er primær nøgle, mens der hvor de skal
erklæres unikke (der hvor den kan men hvor vi bare støder ind i andre problemer) der referer den til en kombineret primærnøgle.

Håber nogen kan hjælpe os.

Med venlig hilsen

De desperate men taknemlige  .
Avatar billede arne_v Ekspert
30. marts 2005 - 21:48 #1
Det er vist ret almindeligt at foreign key constraints insisterer på
at det der peges på skal have et unikt index.
Avatar billede kebee Nybegynder
31. marts 2005 - 09:20 #2
Men hvordan kommer man uden om det på ?
Avatar billede arne_v Ekspert
31. marts 2005 - 09:25 #3
Det tror jeg ikke at du kan.

Men jeg kender ikke PostgreSQL på dette område.
Avatar billede kebee Nybegynder
31. marts 2005 - 10:16 #4
Hvis man har en primær nøgle som består af to primærnøgle (atributter), kan man så ikke gøre selve kombinationen af denne fremmednøgle unik. Til modsætning fra at man gør hver enkelt primærnøgle unik.?
Avatar billede kebee Nybegynder
31. marts 2005 - 10:26 #5
Glem det ovenforstående. Jeg havde lige misforstået noget :-)

Men læs dette i stedet:

Man har en primærnøgle der består af to primærnøgler (to atributter) Denne kobination (den samlede primærnøgle) skal bruges som fremmednøgle i en anden tabel. Men i den tabel hvor den er fremmednøgle bliver den jo opfattede som to forksellige nøgler. Hvordan fortæller man databasen at disse to fremmed nøgler faktisk er en nøgle samlede nøgle (kombnation af de to fremmednøgle).

Det er vist der problemet ligger ?
Avatar billede arne_v Ekspert
31. marts 2005 - 16:03 #6
Du kan godt definere 1 foreign key constraint fra 2 kombinerede felter
til 2 kombinerede felter
Avatar billede arne_v Ekspert
31. marts 2005 - 16:05 #7
http://www.postgresql.org/docs/8.0/interactive/ddl-constraints.html#DDL-CONSTRAINTS-FK

har sågar et eksempel:

CREATE TABLE t1 (
  a integer PRIMARY KEY,
  b integer,
  c integer,
  FOREIGN KEY (b, c) REFERENCES other_table (c1, c2)
);
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