Hva gjør en unik nøkkel begrensning for en primærnøkkel mener?

stemmer
1

I Symfony2 doc 'Hvordan du bruker PdoSessionStorage å lagre Sessions i Database', som viser økten tabellen slik ut:

CREATE TABLE `session` (
    `session_id` varchar(255) NOT NULL,
    `session_value` text NOT NULL,
    `session_time` int(11) NOT NULL,
    PRIMARY KEY (`session_id`),
    UNIQUE KEY `session_id_idx` (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Hvorfor unik nøkkel begrensningen er nødvendig for primærnøkkelen?

Publisert på 25/05/2011 klokken 02:47
kilden bruker
På andre språk...                            


2 svar

stemmer
6

En primærnøkkel er per definisjon en unik nøkkel. I dette eksempelet er det bare et duplisert unødvendig tasten.

I andre tilfeller, hvor primærnøkkel kan potensielt være kompositt (som består av to eller flere felt), vil slike sekundære indekser gjør at de enkelte komponentene av primærnøkkel for å bli behandlet separat.

For eksempel:

create table X {
    a char,
    b char,
    primary key (a,b)
}

hvor du gjør en spørring med WHERE b=something, ikke ville bruke primærnøkkelindeks, som B indeksoppføringer knyttet til 'a', og du ikke bruker 'a' i søket. Legge et sekundært egen indeks dedikert til bare B kan indeks bruk for dette, hvor leddet.

Svarte 25/05/2011 kl. 02:51
kilden bruker

stemmer
2

Primærnøkler må være unikt per definisjon. (Uavhengig av RDBMS)

En primærnøkkel er en kombinasjon av søyler som entydig angir en rad.

Svarte 25/05/2011 kl. 02:50
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more