webForumDet fria alternativet

id - auto_increment

5 svar · 241 visningar · startad av Pedda

PeddaMedlem sedan juni 20006 032 inlägg
#1

Loopar in värdena till databasen (MySQL) och allt funkar bra. Den lägger in id 1 2 3 4 osv, precis som den ska.
Men om jag raderar t.ex id 3 och 4 så lägger den nästa gång in typ, 8 7 5 6!
Hur är detta möjligt? Är det något i loopen, eller något annat? Vill ju ha dom i ordningsföljd.

cyprysMedlem sedan dec. 20003 563 inlägg
#2

De hamnar i ordningsföljd. Inget id-värde kan återskapas, även om det raderats tidigare.

Dubbelkolla verkligen att de hamnar i den ordningen du beskriver. Har aldrig varit med om det.
Om det nu stämmer så handlar det förmodligen om en bugg.

MatteMedlem sedan aug. 20002 975 inlägg
#3

Listar man dom bara rakt upp och ner med "SELECT * FROM tabell" så har jag varit med om att senare inlagda poster tar de lediga utrymmen som raderade poster hade. Och ordningen har blivit därefter.

För att få dom i id-ordning kör "SELECT * FROM tabell ORDER BY id". Fast ännu hellre kanske du skulle ha ett datum/tid-fält att sortera dom efter.

PeddaMedlem sedan juni 20006 032 inlägg
#4

cyprys - inget id återskapas, raderar jag id 3 så skapas inte en ny id 3.
det är ordningsföljden som stör mig.

matte - sorteringen vid utskrift är inget problem, men jag vill även ha ordning i databasen :)

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Det finns ingen funktion i Mysql som garanterar att du får id i nummerföljd. Den enda avsikten med auto_increment är att skapa unika värden. Jag förstår inte att det skulle vara något problem om det är luckor bland värdena.

NiklassonMedlem sedan nov. 2000857 inlägg
#6

Jag hade för mig att man kunde köra "OPTIMIZE table tabell" för att kunna använda luckorna igen. Prova det och berätta hur det gick..

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