webForumDet fria alternativet

Hur gör man en composite key?

5 svar · 447 visningar · startad av jme

jmeMedlem sedan maj 20012 237 inlägg
#1

Hej!

Hur skapar man en composite key (inte primary key)?

CREATE TABLE test
(
id INT AUTO_INCREMENT NOT NULL,
key1 VARCHAR(10) NOT NULL, *
key2 VARCHAR(200) NOT NULL, *
PRIMARY KEY(id)
);

Raderna märkta med * ska bilda ett unikt par vars värde endast kan användas en (1) gång.

Separat kan båda värdena återanvändas.

@ndersMedlem sedan juni 200032 969 inlägg
#2

Använder du MySQL?

http://sqlzoo.net/howto/source/z.dir/tip241027/mysql

(Google rockar!!!)

pimmeMedlem sedan sep. 20011 086 inlägg
#3

Re: Hur gör man en composite key?

Såhär menar du?

CREATE TABLE test
(
id INT AUTO_INCREMENT NOT NULL,
key1 VARCHAR(10) NOT NULL, 
key2 VARCHAR(200) NOT NULL, 
PRIMARY KEY(id),
UNIQUE(key1, key2)
);
jmeMedlem sedan maj 20012 237 inlägg
#4

Tack @nders för ett snabbt svar. Kanske formulerade frågan fel (eller använde benämning) för jag var inte ute efter composite (primary) key utan unikt par-värde.

Hittade en bok här på jobbet som förklarade saken:

CREATE UNIQUE INDEX ON test (key1, key2);

Detta var jag ute efter.

BTW: Jag hittade faktiskt EXAKT samma sida som du ;)

jmeMedlem sedan maj 20012 237 inlägg
#5

Tack även du Pimme! Hade jag inte hittat svaret i boken så hade jag fått det av dig.

LarsGMedlem sedan dec. 200012 464 inlägg
#6

Varför har du alls med id i tabellen? Det räcker ju att ha key1 och key2 och definiera dessa som en sammansatt primärnyckel.

129 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)