Avatar billede michaelpham Nybegynder
18. marts 2004 - 00:28 Der er 3 kommentarer og
1 løsning

Hvordan fungerer sammensatte primærnøgler i SQL

Når jeg har en tabel hvor primærnøglen er sammensat af flere felter fx:

CREATE TABEL kunde (
    navn VARCHAR(255),
    by VARCHAR(255),
   
    PRIMARY KEY (navn, by)
);

og skal indsætte kunde tabellens primærnøgle ind anden tabel som dens fremmednøgle fx:

create table ordrer (

ordrerNavn VARCHAR(255) REFERENCES kunde(navn),
OrdrerTitel VARCHAR(255) REFERENCES kunde(titel)

.
.
.

);

Så får jeg følgende fejl:

SQL error:
ERROR:  UNIQUE constraint matching given keys for referenced table "kunde" not found


In statement:
create table ordrer (

ordrerNavn VARCHAR(255) REFERENCES kunde(navn),
OrdrerTitel VARCHAR(255) REFERENCES kunde(titel)

.
.
.

);
Avatar billede michaelpham Nybegynder
18. marts 2004 - 00:36 #1
hvad gør jeg galt? og hvordan løser man "problemet"? Går ud fra at det er en grundlæggende fejl...
Avatar billede anni01ad Nybegynder
18. marts 2004 - 00:52 #2
du skal huske at en enkelt af felterne fra den sammensatte primærnøgle ikke er unikt - derfor skal du benytte både navnet og byen som nøgle i den anden tabel - ellers ved SQL-fortolkeren ikke om det er unikt... så bare læg byen ind i din anden tabel også, så er den i vinkel
Avatar billede michaelpham Nybegynder
18. marts 2004 - 00:54 #3
kan du gi et eksempel?
Avatar billede michaelpham Nybegynder
18. marts 2004 - 00:54 #4
Kan du gi et eksempel?
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