webForumDet fria alternativet

auto_increment integer

Databaser & SQLur Databashanterare & SQL

6 svar · 165 visningar · startad av Rocket

Medlem sedan feb. 2000372 inlägg
Frågan#1

Hur skpar man ett integer fält som är auto_increment, direkt i mysql med kommandon?

Medlem sedan dec. 200012 464 inlägg
#2
CREATE TABLE test (a int not null auto_increment,b char(12)
primary key (a))

t.ex.

------------------
essentitia preter non sans multiplicandum

Medlem sedan feb. 2000372 inlägg
#3

Ok, följdfråga:

Vad menas med ”primary key (a)” och varför skriver man det?

Med det du skrev skapar man ju en helt ny table med två fält, det är inget annat man ska tänka på om man vill lägga till ett auto_increment fält till en table man redan har?

Medlem sedan dec. 200012 464 inlägg
#4

primary key(a) innebär att kolumnen a utgör en primärnyckel för tabellen. Det innebär att den kolumnen inte får innehålla några duplikat. En primärnyckel kan bestå av en eller flera kolumner.

Har man gjort en riktig datamodell så skall varje tabell innehålla en primärnyckel.

Om man vill lägga till en kolumn med autoincrement så borde man kunna göra


  ALTER TABLE ogrish ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,
           ADD INDEX (c);

------------------
essentitia preter non sans multiplicandum

Medlem sedan feb. 2000372 inlägg
#5

Då blir det lite mer frågor :)
Vad menas med:

UNSIGNED
och
ADD INDEX

Medlem sedan dec. 200012 464 inlägg
#6

Unsigned tillåter bara positiva tal.

Tydligen så kräver Mysql, att man skapar ett index för kolumner som har attributet auto_increment. (Jag tycker att det borde kunna hanteras implicit.)

Ett index gör sökning effektivare. Desto mer data man har, desto mer tjänar man på att ha ett index. Ett index kostar något att underhålla när man uppdaterar eller lägger till data.

------------------
essentitia preter non sans multiplicandum

Medlem sedan feb. 2000372 inlägg
#7

Ok, tack för hjälpen.

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