Archiv verlassen und diese Seite im Standarddesign anzeigen : [MySQL 3.23.X] ID zurücksetzen
schellness 21-05-2003, 11:34 Hi, ich habe folgendes Problem. Sobald ich den Inhalt meiner Tabelle lösche und dann wieder hinzufüge, zählt die ID automatisch weiter hoch. Beispiel... habe 10 Datensätze... diese gelöscht... wieder hinzugefügt... ID jetzt bei 11, 12, 13 etc.
Wie kann ich die ID automatisch wieder auf 0 bzw. 1 setzen, so dass immer wieder neu angefangen wird zu zählen.
In der Realität bin ich nämlich jetzt schon bei 81, 82, 83 etc.
HIIIIIIIIIIIIIIIIIIIIIIIILFFFFFFFEEEEEEEEEEEEEEEEEEEEE!!!
die spalte wird auto-increment sein. das ist auch ok so.
wenn du es wieder bei 1 loslaufen lassen willst, musst du die tabelle DROPen und wieder neu anlegen. dann geht es.
schellness 21-05-2003, 11:45 wow, das ging ja fix!!! vielen dank. also das mit dem auto_increment ist schon mal richtig. demnach gibt es nur diese möglichkeit oder gibt es noch einen anderen weg als die ganze tabelle wieder zu löschen?
gruß und danke
nur so mit DROP wenn du wieder bei 1 anfangen willst.
ansonsten macht eine spalte auto_increment auch keinen sinn. schliesslich soll ja eine doppelbelegung oder wiederbelegung dadurch vermieden werden. interessant wird das , wenn die id werte in anderen tabelle referenziert werden. und dann hässtest du falsche daten.
suche mal ein wenig im forum. da steht noch mehr zu dem thema.
schellness 21-05-2003, 11:52 alles klar vielen dank!
CannabisCow 21-05-2003, 12:05 Man kann doch mit
ALTER TABLE `deinetbl` AUTO_INCREMENT = einezahl
den Wert wieder zurücksetzen.
wenn es geht, ist es ok.... habs nie so gemacht ... ;) bzw. ich mache sowas überhaupt nie. bei mir bleibt die id eben dann bei 10233 wie es sich gehört.
schellness 21-05-2003, 12:15 dat funzt bei mir nicht. schade. rein theoretisch ist es ja auch okay, wenn die zahl irgendwann bei 13043 ist obwohl ich nur 10 datensätz habe aber es nervt mich dennoch.
danke aber für eure tatkräftige unterstützung
CannabisCow 21-05-2003, 12:19 hmm, bei mir gehts.
Kann es sein, das dass erst seit der 4.x so ist?
Mal nachschauen ...
schellness 21-05-2003, 12:24 ich hätte ja diese lösung aber es ist zu mühsam es für jede id zu tun
UPDATE Tabelle Set Id=1 WHERE Id=81;
kann man das nicht noch automatisieren?
Original geschrieben von schellness
ich hätte ja diese lösung aber es ist zu mühsam es für jede id zu tun
UPDATE Tabelle Set Id=1 WHERE Id=81;
kann man das nicht noch automatisieren? das ist nicht das, was CannabisCow meint.
wenn du alle daten aus der tabelle gelöscht hast, solltest du seine query ausführen. wenn du aber noch kein mysql 4 hast, wird es wahrscheinlich nicht funktionieren. aber CannabisCow wollte sich dazu noch einmal melden... ;)
schellness 21-05-2003, 13:29 ich weiß das es nicht seine lösung war aber ich wollte mal zeigen, dass ich auch selber alles versuche und nicht nur auf eure antworten warte und den lenz mache *lach.
aber ich warte mal ab bis die thc-kuh schreibt
skorpions77 20-08-2004, 09:53 Tja ich habe auch die Version 4.0.20 und bei mir funktioniert das auch nicht!
Und ja ich weiß eh das man eine id lassen sollte nur bei unseren DAtenmengen ist es so das wir schon bei 3.456.999 sind und da fällt das kontrollieren wenn man etwas sucht extrem schwer.
Und da Datensätze bei mir auch gelöscht werden habe ich extreme Löcher dazwischen und ich brauche diese Nr = auto_increment eben nur für mich zum händischen herauslesen.
Aber wie gesagt ich denke nicht das es was mit der 4er Version zu tun hat.
Weiß aber leider auch nciht woran es liegt.
Eine Lösung wo ich kein drop table machen muss wäre auch sehr interessant für mich da ich nicht offline gehen kann mit dem Table.
Danke
Eine Lösung wo ich kein drop table machen muss wäre auch sehr interessant für mich da ich nicht offline gehen kann mit dem Table. tja. dann hast du ein problem ... :p
und wenn du die daten noch in relation zu anderen tabellen hast, wovon man grundsätzlich ausgehen kann/muss, hast du noch ein viel größeres problem .....
aber 3.456.999 ist doch noch eine sehr kleine zahl.
INT[(M)] [UNSIGNED] [ZEROFILL]
A normal-size integer. The signed range is -2147483648 to 2147483647.
The unsigned range is 0 to 4294967295.
http://dev.mysql.com/doc/mysql/en/Numeric_type_overview.html
und bis du 4.294.967.295 erreichst, fliesst noch viel wasser den rhein herunter. sehr viel wasser ..... :D
ich verstehe das Problem nicht :confused: . Eine ID dient lediglich dazu den Datensatz eindeutig zu identifizieren. Mehr interessiert es mich nicht. Es ist doch egal, wasfür eine Zahl sich dahinter steckt, solang sie einzigartig in der Tabelle ist, ist alles i.O.
skorpions77 20-08-2004, 11:08 Tja zuerst habe ich mich eh vertan mit meiner ID die steht nämlich schon bei 3.439.739.472 copy and paste ist hier sicherer *gg*.
Und ich habe andere eindeutige Felder dabei die ich für meine Abfragen verwende.
Den auto_increment verwende ich nur für meine händische kontrolle!
Im normalfall wenn ich dann die Zeilen vergleiche ist es doch einfacher wenn ich zahlen habe die man sich noch merken kann um das geht es mir!
Ob es nun klar verständlich ist oder nicht.
Es ist leider nunmal so das ich auf vorhandene Datenbanken weiterarbeiten muss und dafür möchte ich es mir so leicht wie möglich machen das ist mein beweggrund.
Danke
|