Avatar billede acidduck Nybegynder
25. januar 2001 - 02:44 Der er 5 kommentarer og
1 løsning

Sammensat primær nøgle - hvordan?

Er det ikke muligt at lave en sammensat primærnøgle i MySQL?
Avatar billede defrost Nybegynder
25. januar 2001 - 08:20 #1
Jo da.

Alter table tabel_navn add primary key (felt1, felt2);

Eller

create table test (id int not null, et_felt varchar(255) not null, primary key (id, et_felt)):

Du kan selvfølgelig også lave den over mere end 2 felter.
Avatar billede acidduck Nybegynder
25. januar 2001 - 11:10 #2
Jamen altså. Det er jo alletiders - og det virker(!), jeg forstår bare ikke hvorfor?! Jeg troede ikke mySQL understøttede \"primary key\", men at man istedet måtte lave et UNIQUE INDEX på den kolonne man ville undgå redundant data i.
Er det en forholdsvis ny feature?
Avatar billede defrost Nybegynder
25. januar 2001 - 11:16 #3
Primary key har været med sålænge jeg kan huske. D.v.s. siden 3.22.26. :) Så helt ny er den ikke.

Forskellen på en primær nøgle og et unik index er, at en primær nøgle \"identificerer\" en bestemt post, hvorimod en unik nøgle er en måde til at øge hastighed og undgå duplikerede ting. En primær nøgle skal helst aldrig ændres for en bestemt post, hvorimod der normalt ikke er noget til hinder for at ændre en unik nøgle, sålænge den vedbliver at være unik.

Sådan er teorien vist. I mysql er det vist ikke den store tekniske forskel på en primær nøgle og et unikt index. Men såmeget kender jeg heller ikke til mysql-internals. :)
Avatar billede acidduck Nybegynder
25. januar 2001 - 11:31 #4
Ok - tak. Dvs sålænge man ikke arbejder med sammensatte nøgler, kan man i teorien ligesågodt lave en unik nøgle istedet? Det vil jo faktisk tillade een af sløse lidt med datadiciplinen, da man så uden problemer, kan sætte en anden kolonne til at være unik istedet?
Avatar billede defrost Nybegynder
25. januar 2001 - 11:36 #5
Du kan også uden problemer sætte en anden kolonne til at være en primær nøgle istedet. Du skal bare droppe den primære nøgle og derefter sætte en unik nøgle.

Jeg plejer at sige, at man ikke bruger unikke index før man har sat en primær nøgle. Det er ikke helt korrekt, men som tommelfingerregel er det ok. Om en nøgle er sammensat eller ej er egentlig sagen irrelevant.
Avatar billede acidduck Nybegynder
25. januar 2001 - 11:42 #6
Jeg takker mange gange!
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