Avatar billede jensgram Nybegynder
17. september 2006 - 22:30 Der er 8 kommentarer og
1 løsning

Er PRIMARY KEY og UNIQUE indekserede

Hej eksperter

Måske et dumt spørgsmål, men vil høre, om PRIMARY KEY og UNIQUE attributter er indekserede.

Jeg har en tabel, der indeholder userid, username og nogle andre felter. userid er PRIMARY KEY og username er UNIQUE. Skal der eksplicit laves indexes herpå? Hvis jeg gør det så siger PHPmyadmin, at det er skidt, men det er jo ikke sikkert at PMA har ret. Jeg synes det vil være logisk, hvis der automatisk er indexes på de to nævnte felter, men er det tilfældet?

- Jens Gram
Avatar billede jensgram Nybegynder
17. september 2006 - 22:32 #1
Struktur:


CREATE TABLE `brugere2` (
  `id` int(5) NOT NULL auto_increment,
  `brugernavn` varchar(255) NOT NULL default '',
  `password` varchar(40) NOT NULL default '',
  `mail` varchar(255) NOT NULL default '',
  `allowances` int(5) NOT NULL default '0',
  `bookmarks` text,
  `style` varchar(32) default NULL,
  `advancedstyle` text,
  `logins` int(5) NOT NULL default '0',
  `downloads` int(5) NOT NULL default '0',
  `sidstelogin` datetime NOT NULL default '0000-00-00 00:00:00',
  `oprettelse` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `brugernavn` (`brugernavn`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
Avatar billede arne_v Ekspert
17. september 2006 - 22:47 #2
primary key har altid implicit index på

unique kaldes også unique index, så det er der også index på
Avatar billede Slettet bruger
17. september 2006 - 23:03 #3
Jeg hijacker lige dit spørgsmål, undskyld :)

arne_v er der en umiddelbar funktionel forskel på de to felt-typer?
Avatar billede arne_v Ekspert
17. september 2006 - 23:13 #4
strengt tager er det ikke felt typer

PRIMARY KEY er en essentiel feature i relationelle databaser

UNIQUE INDEX er noget man bruger når man vil sikre unikke værdier i en kolonne
som ikke er primary key

UNIQUE KEY er en MySQL "forkortelse" for UNIQUE INDEX

jeg mener dog ikke at der er nogen praktisk forskel (check dog lige om unique evt.
tillader NULL - det gør primary key ikke)
Avatar billede jensgram Nybegynder
18. september 2006 - 07:01 #5
Arne > "a UNIQUE index allows multiple NULL values for columns that can contain NULL."...


Men det undgår jeg vel med "NOT NULL"?

Tak for svaret, ellers.

- Jens
Avatar billede arne_v Ekspert
18. september 2006 - 13:05 #6
ja, hvis man vil undgå det
Avatar billede jensgram Nybegynder
18. september 2006 - 13:52 #7
Arne > Ja, det vil jeg ;)

Gider du smide et svar?
Avatar billede arne_v Ekspert
19. september 2006 - 01:29 #8
jep
Avatar billede jensgram Nybegynder
19. september 2006 - 07:41 #9
Så sige jeg tak for hjælpen.
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