webForumDet fria alternativet

vad innebär UNIQUE?

1 svar · 281 visningar · startad av orvar

orvarMedlem sedan feb. 2001105 inlägg
#1

Jag använder Oracle, ska skapa en tabell och gör då så här:

CREATE TABLE test(
abc integer,
def integer UNIQUE,
ghi integer,
PRIMARY KEY (abc, def)
);

Vad innebär egentligen UNIQUE? Hur påverkar det tabellen?

Anledningen till att jag frågar är att när jag skulle skapa 4 tabeller med lite referenser mellan varandra så fick jag följande felmeddelande på en "FOREIGN KEY"-rad i en tabell som refererade till "def": "No matching unique or primary key for this column-list".

Tycker det verkar konstigt då "def" väl faktiskt är en primary key i och med "PRIMARY KEY (abc, def)"... eller?

Felmeddelandet försvann iallefall när jag lade till UNIQUE.

Tack, orvar

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Unique innbär att du inte kan ha duplikat i de kolumner som ingår i unique.

När du definierar en foreign key så måste det finns en primary key eller unique som innehåller exakt lika många kolumner som det finns i din foreign key. Kolumnerna måste också vara jämförbara.

Generellt så tycker jag att det tyder på en lite skev datamodell om du vill ha en foreign key till enbart en av kolumnerna i din primärnyckel.

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