Page 1 of 1

Komisches Verhalten bei AUTO_INCREMENT

Posted: 2010-10-20 19:44
by stanglwirt
Hi,

folgende Situation:

Tabelle hat eine auto-increment-spalte "ID".

die tabelle hat zeilen mit der ID 50, 60, 101, 102, 103, 150 etc.

das AUTO_INCREMENT steht demnach jetzt auf 151 für die nächste zeile die eingefügt wird.

nun lösche ich zeile 150 oder ändere manuell die ID auf irgendeinen niedrigeren wert.

Ich erwarte: der AUTO_INCREMENT wert bleibt auf 151. tuts auch erstmal. wunderbar, so solls sein.

Ja bis zum Neustart... Nach dem Neustart steht der Wert plötzlich auf 104!

sprich: aus irgendeinem grund schaut mysql beim neustart nach, welche die höchste ID ist und ändert dementsprechend den AUTO_INCREMENT wert auf höchste gespeicherte ID+1.

auch wenn ich selbst mit ALTER TABLE den Wert ändere, ändert das mysql beim neustart wieder wie oben beschrieben???

das will ich aber nicht. was kann ich dagegen machen?


cu


P.S. das Problem tritt nur bei INNODB auf. Bei MYISAM bleibt der wert auch nach Neustart bestehen.

Re: Komisches Verhalten bei AUTO_INCREMENT

Posted: 2010-10-20 20:13
by stanglwirt
its not a bug, its a feature ;)
http://dev.mysql.com/doc/refman/5.1/de/ ... olumn.html

ich finde das verhalten aber ehrlich gesagt ziemlich bescheiden und wenn man da nicht aufpasst, kann man ziemlichen murks damit anstellen.

Re: Komisches Verhalten bei AUTO_INCREMENT

Posted: 2010-10-20 20:19
by stanglwirt
jupp, ist anscheinend nur bei INNODB so...

Re: Komisches Verhalten bei AUTO_INCREMENT

Posted: 2010-10-20 20:42
by Joe User
Es gibt noch andere Effekte zu beachten, siehe http://blog.koehntopp.de/archives/2939- ... ement.html insbesondere auch die Kommentare.