Ab bestimmter ID weiterzählen

twx

Active Member
#1
Hey!


Gibt es eine Möglichkeit alle Einträge so zu löschen, als hätte es diese nie gegeben?

Also aktuell schaut es so aus : id=1, id=2, id=5, id=6,...
Mein Zielergebnis : id=1, id=2, id=3, id=4,...

Also quasi setzt man den Zähler zurück auf eine bestimmte Zahl (bspw. 2 für id=2), sodass wenn ein neuer Eintrag kommt, er mit id=3 usw. weiter macht.


Es ist halt doof die gesamte Tabelle zu leeren, sodass der Zähler wieder auf 1 zurück springt. Ich bräuchte einen Querybefehl, welcher den Zähler ab id=2 fortsetzt.



Hoffe es gibt da etwas,

mfg
 

dominikb

Well-Known Member
#2
Unter welchem DB-System? Und warum willst du das machen? Ich finde es zwar nicht sinnvoll, aber bei z. B. MySQL könntest du das Auto Increment so setzen:

SQL:
ALTER TABLE t AUTO_INCREMENT = 123;
Meines Wissens nach funktioniert das aber nicht mit einem Subselect, z. B. AUTO_INCREMENT = (SELECT MAX(id) + 1 FROM t).

Falls du zusätzlich die IDs der bereits bestehenden Datensätze rückwirkend ändern willst: Lass das lieber. :D
 

twx

Active Member
#3
Hey ich teste das ganze gleich mal. Ich möchte das machen, weil eine ungewollte Registration einen neuen Eintrag in die users-Tabelle eingefügt hat und diese ID jetzt vergeben wäre. Allerdings soll ab der ID 2 weitergezählt werden (also 2,3,4,5.. statt 2,4,5,6,..)

Rückwirkende Änderungen von IDs habe ich schon in Erfahrung gebracht, bringt mehr unheil als alles andere. Jedenfalls habe ich es nicht darauf abgesehen. Danke für deine Hilfe! :D
 
Oben