auto_increment Spalte neu ordnen

Eistee

Erfahrenes Mitglied
Hi,
ich habe eine Tabelle, in die sehr häufig Einträge geschrieben und auch wieder gelöscht werden.
In diser tabelle gibt es auch eine id-Spalte, die auto_increment ist.
Nun hat diese Tabelle z.Z. 1700 Einträge, wobei der erste die id "1" hat und der letzte die id "57389" (ist jetzt leicht übertrieben aber schon nah an der Realität ;) ).
Gibt es einen MySQL-Befehl, mit dem ich die id-Spalte nun wieder neu sortieren kann?
Der letzte Eintrag soll als id wieder "1700" haben.
Ich möchte nur wissen, ob und wie es geht ;)
Danke!
 
Ob es einen Befehl dafür gibt, weiß ich nicht, aber ich vermute eher nein. Du könntest dir jedoch ein kleines Script anlegen, das das für dich erledigt. Ich würde wahrscheinlich als erstes eine neue DB-Tabelle erstellen mit der gleichen Struktur wie die, in der die vielen Einträge sind. Dann könntest du alle Eintrage nach IDs aufsteigend sortiert auslesen und in die neue Tabelle übernehmen, wobei du eine Variable jedes Mal um 1 erhöhst und die neue ID dann diesen Wert bekommt. Dann hättest du zur Sicherheit noch immer deine alte Tabelle, die du dann ja auch löschen kannst, wenn alles geklappt hat.
Hoffentlich sind die Einträge über die ID nicht mit Einträgen in anderen Tabellen verknüpft, sonst kannst du das natürlich vergessen.

Grüße.
 
Ich habe es selbst nicht getestet (und halte es persönlich auch für Blödsinn), aber es gibt einen User-Comment im MySQL-Handbuch, welcher genau dieses Problem beschreibt.
Eistee hat gesagt.:
Ich möchte nur wissen, ob und wie es geht ;)
Du scheinst Dir bewusst zu sein, dass es Blödsinn ist, warum willst du das machen?

Gruß hpvw
 
Bei einem Auto_Increment ist i.d.R auch der Primary Key = ID. Falls du weitere Verweise in anderen Tabellen auf diese ID hast, beginnt dein Chaos. Eine AutoID sollte daher eindeutig bleiben auch wenn Datensätze gelöscht werden
 
Generell haben alle Recht, dei Abraten den Index "zurückzusetzen".
Aber hin und wieder ... grad zu Entwicklungszeiten - nicht wärend des echten Einsatzes .... kann es unumgänglich sein.

So gehts in MySQL

Chris
 
Und genau für die Entwicklung brauch ich's auch :p
Ich habs halt gern aufgeräumt in meiner DB ;)
 
Zurück