Auto-Increment-Value auf 0? (MySQL)
Tommes
- datenbank
Hallo,
ich hatte jetzt schon ein paar Mal das Problem, dass der Auto-Increment-Value bei einigen Tabellen plötzlich auf 0 stand.
MySQL gibt dann bei CHECK TABLE auch eine entsprechende Meldung aus:
"Auto-increment value: 0 is smaller than max used value: 145050"
Woran kann das liegen?
Grüsse,
Tommes
Hello,
ich hatte jetzt schon ein paar Mal das Problem, dass der Auto-Increment-Value bei einigen Tabellen plötzlich auf 0 stand.
MySQL gibt dann bei CHECK TABLE auch eine entsprechende Meldung aus:
"Auto-increment value: 0 is smaller than max used value: 145050"Woran kann das liegen?
Du hast eventuell die Spalte mit dem Autokey auch übergeben beim Query?
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Du hast eventuell die Spalte mit dem Autokey auch übergeben beim Query?
Nein, habe ich nicht. Das würde den Auto-Increment-Wert aber nicht verändern.
Grüsse,
Tommes
Hello,
Du hast eventuell die Spalte mit dem Autokey auch übergeben beim Query?
Nein, habe ich nicht. Das würde den Auto-Increment-Wert aber nicht verändern.
Nein, aber es würde den übergebenen Wert benutzen. Bei einem Insert würde dann geprüft werden, ob der Schlüssel bereits vorhanden ist. Dann gäbe es eine Fehlermeldung. Die sollte allerdings anders aussehen, als die von Dir genannte. Wenn der Schlüssel noch nicht vorhanden wäre, würde der Satz mit diesem eingefügt, und nicht mit dem nächsten Autokey. Das ist MySQL-typisch!
Lass doch mal das effktive Statement und die zugehörige MySQL-Statusmeldung loggen und provoziere dann den Fehler.
Anders wirst Du die Fehlerquelle wahrscheinlich nicht finden.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Wenn der Schlüssel noch nicht vorhanden wäre, würde der Satz mit diesem eingefügt, und nicht mit dem nächsten Autokey. Das ist MySQL-typisch!
Das ist mir bekannt. Das eigentliche Problem ist doch, dass der Auto-Increment-Wert sich selbstständig verändert. D.h., der nächste "Autokey" ("Nächste Autoindex" heisst es in phpMyAdmin) steht auf 0.
Grüsse,
Tommes
Hello,
Wenn der Schlüssel noch nicht vorhanden wäre, würde der Satz mit diesem eingefügt, und nicht mit dem nächsten Autokey. Das ist MySQL-typisch!
Das ist mir bekannt. Das eigentliche Problem ist doch, dass der Auto-Increment-Wert sich selbstständig verändert. D.h., der nächste "Autokey" ("Nächste Autoindex" heisst es in phpMyAdmin) steht auf 0.
*iii* Das ist aber hässlich!
Und hast Du den mysqld mal neu gestartet?
Welche Version, welches OS?
Hast Du Die mal mit "show table status" die Statisik beschafft?
Darin erscheinen auch die Next Autoindex...
Und vielleicht kann man daraus erkennen, dass irgendwas überläuft.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Und hast Du den mysqld mal neu gestartet?
Beim letzten Mal schon, diesmal bin ich mit REPAIR TABLE über die betreffenden Tabellen gegangen. Wobei MySQL den Fehler scheinbar schon behebt, wenn man CHECK TABLE ausführt.
Welche Version, welches OS?
Version 4.0.21, Suse-Linux
Hast Du Die mal mit "show table status" die Statisik beschafft?
Zeigt mir phpMyAdmin an, was kann ich daraus sehen?
Darin erscheinen auch die Next Autoindex...
Die kenne ich ja.
Und vielleicht kann man daraus erkennen, dass irgendwas überläuft.
Sorry, was genau könnte überlaufen?
Grüsse,
Tommes
Hello,
Hast Du Die mal mit "show table status" die Statisik beschafft?
Zeigt mir phpMyAdmin an, was kann ich daraus sehen?
Eben vielleicht nicht wirklich. Auch phpMyAdmin ist nur ein dummes Programm, das es verdient, gegengeprüft zu werden.
Darin erscheinen auch die Next Autoindex...
Die kenne ich ja.
Du meinst sie zu kennen, weil phpMyAdmin sie Dir zeigt.
Und vielleicht kann man daraus erkennen, dass irgendwas überläuft.
Sorry, was genau könnte überlaufen?
Der Wertebereich für den AutoIndeyx z.B.?
Also die Anzahl der Datensätze...
Oder worum ging es eigentlich ;-))
Ich habe da leider auch keine Standardlösung für Dich. Aber ich habe mit meiner nervigen Methode, erstmal alles in Frage zu stellen (Nomen est Omen) bisher meistens die fehler gefunden, auch wenn es manchmal tage gedauert hat und ich leider/gottseidank auf dem Weg dahin viel dazugelernt habe.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Darin erscheinen auch die Next Autoindex...
Die kenne ich ja.
Du meinst sie zu kennen, weil phpMyAdmin sie Dir zeigt.
Nein, nein, der angezeigte Wert ist schon der, mit dem MySQL (versucht) zu arbeiten.
Und vielleicht kann man daraus erkennen, dass irgendwas überläuft.
Sorry, was genau könnte überlaufen?
Der Wertebereich für den AutoIndex?
In der einen betroffenen Tabelle sind aktuell 14500 Datensätze, der korrekte Autoindex-Wert müsste auch 14501 sein. Das Feld für den Autoindex ist als Int 12 gesetzt.
Habe einen zweiten Server mit absolut identischer Konfiguraton, der macht keinen Ärger.
Grrrr :-)
Grüsse,
Tommes