• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

hilfe!!! auto_increment!

woodruff

New member
hi!
bin ein absoluter newbie und habe schon ein einfaches aber für mich unlösbares problem:

habe ein gästebuch, die einträge sind mit id nummeriert. nun habe ich einige einträge gelöscht und da id mit auto_increment arbeitet, werden die einträge jetzt falsch weiternummeriert!

meine frage:
wie kann ich auto_increment auf null setzten?

habe schon versucht das feld id zu löschen und neu anzulegen, aber der arsch hat sich das gemerkt und beginnt bei auto_increment jetzt den ersten eintrag schon mit 42 zu nummerieren!

was soll ich tun, bitte um hilfe!!!

:(
 
Auto Increment merkt sich bei jeder DB die sowas unterstützt immer den höchsten Wert und zählt einen drauf, für eine neue ID. Wenn Du z.B. irgendwo in der Mitte einen Eintrag rausnimmst, und sei es der Eintrag mit der bislang höchsten id, so ändert sich nichts an dem internen Auto Increment Zähler. Du wirst in keiner DB ein AutoFeld finden, welches automatisch die "Lücken" schließt....
Schließlich ist das ja auch ein Integritätsproblem, was wenn Tabelle A mit Tabelle B über die id von A als Fremdschlüssel in B verknüpft ist. Dann löscht Du vielleicht einen Eintrag in A, aber die verknüpften Einträge in B bleiben bestehen (aus welchem Grund auch immer). Wird die gelöschte id durch einen neuen Eintrag wieder "reaktiviert", dann hast Du plötzlich Daten in Tabelle B mit ihr verknüpft, ohne daß diese Verknüpfung jemals manuell oder automatisch hergestellt wurde --> Inkonsistenzen, fehlende Datenintegrität, Mord und Todschlag....

Was ist also so schlimm daran, daß die id bis 4 Milliarden und ne paar Gequetschte hochzählt? Nix! Oder erwartest Du so viele Gästebucheinträge ;);)
 
ja, das mit der lücke is schon klar!

das schlimme is ja, daß ich die id im gästebuch ausgebe. dort sollten die einträge schön nummeriert sein. (schaut blöd aus, wenn der erste eintrag mit 42 beginnt)

verstehe schon, daß auto_increment brav weiterzählt, aber wenn ich alle id händisch umstelle, wenn ich etwas lösche, möchte ich auch daß es wieder vom höchsten (eingetragen !!) wert weiterzählt.

kann ich dieses auto_increment nicht wieder auf einen wert zurücksetzten, von dem es ab jetzt wieder weiterzählt..?!
 
Wie wärs, wenn Du das anders löst??
Schließlich gibts Du die Einträge in einer ganz bestimmten Reihenfolge aus, d.h. Du hast sowieso eine Schleife, die über alle Einträge loopt, bzw. beim Paging über alle Einträge einer Seite. Innerhalb der Schleife kannst Du doch mitzählen, der wievielte Eintrag das dann ist, den Du da gerade ausgibst....
 
ok, werds gleich versuchen! wollte mich nur vergewissern, daß ich das mit dem auto_increment zurücksetzten vergessen kann.

danke, für die schnelle hilfe! echt ein geiles forum!! :cool:
 
Zurück
Oben