Hur skpar man ett integer fält som är auto_increment, direkt i mysql med kommandon?
auto_increment integer
6 svar · 188 visningar · startad av Rocket
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?
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);
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.
Ok, tack för hjälpen.