webForumDet fria alternativet

nycklar igen :)

3 svar · 195 visningar · startad av Nöff

NöffMedlem sedan nov. 2003569 inlägg
#1

CREATE TABLE anvandare (
ID int IDENTITY(1,1) PRIMARY KEY NOT NULL,
namn char(255),
kod char(255));

CREATE TABLE anvandare (
ID int IDENTITY(1,1) UNIQUE NOT NULL,
namn char(255),
kod char(255),
PRIMARY KEY(ID));

vad är det för skillnad på dessa egentligen?, tex i den översta kan jag inte deklarera UNIQUE medans jag kan det i den understa?.

Och denna tex, kan jag deklarera UNIQUE om jag sätter den UNIQUE neders.:

CREATE TABLE anvandare (
ID int IDENTITY(1,1) PRIMARY KEY NOT NULL,
namn char(255),
kod char(255)
UNIQUE(ID)
);

Engine^Medlem sedan dec. 20003 887 inlägg
#2

Det är väl två sätt att skriva samma sak?

Den tredje varianten är väl redundant, eftersom en PRIMARY KEY alltid är UNIQUE?

NöffMedlem sedan nov. 2003569 inlägg
#3

jag blir tokig på det här :o
jag gillar inte situationer när det skiljer ytterst lite mellan alternativen.

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Skillnader mellan unique och primary key.

Kolumner som ingår i primary key kan inte innehålla null.
Kolumner som ingår i unique kan innehålla null.

Det kan finnas 0 eller 1 primary key i en tabell.
Det kan finnas 0 eller flera unique i en tabell.

Om man anger en foreign key utan kolumnlista efter REFERENCES så så använder man kolumnerna som ingår i primary key.

Du kan ange unique för sig enligt nedan

CREATE TABLE anvandare (
ID int IDENTITY(1,1) NOT NULL,
namn char(255),
kod char(255),
UNIQUE(ID)
)
127 ms totalt · 3 externa anrop · v20260731065814-full.102f7fcd
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)