Mysql insert aufsteigende ID

Hallo,

sagen wir es existiert eine Spalte mit den zahlen (ID) von 1 bis 100

nun werden die Einträge mit den zahlen (ID) 22,25,55-80 gelöscht.

Wie kann ich nun bei einem Insert automatisch die niedrigste aktuelle ID wählen. (möglichst ohne großen aufwand)

schonmal danke für eure antworten

Das machst du am besten gar nicht.

Eine ID hat nur den einzigen Zweck, einen Datensatz eindeutig zu identifizieren.
Sie muss nicht „schön aussehen“, deshalb auch nicht fortlaufend sein oder sonstwas.

Mit der Neuvergabe von gelöschten IDs kann man sich arge Probleme einhandeln, wenn Referenzierungen auf diese dann nicht mehr stimmen, etc.
Deshalb sollte man es absolut vermeiden, einer ID irgendeine andere Bedeutung zumessen, oder ihre Vergabe aus „optischen“ Gründen beeinflussen zu wollen.

und wenn man es trotzdem machen muss gibt es dafür einen speziellen befehl in mysql?

Wenn man es machen „muss“ - dann macht man etwas ganz gravierend falsch.

Keinen wirklich vernünftigen.

Die Nutzerkommentare im MYSQL empfehlen z.B., die Spalte, auf der auto_increment liegt, zuerst zu DROPpen, und dann mit den gleichen Attributen wieder zu erstellen. Dabei würden aber alle Datensätze neue Werte für die Spalte vergeben bekommen, so dass sehr wahrscheinlich sogar externe Referenzen auf nicht gelöschte Datensätze zerstört würden.

Alternativ kann man auch den Auto-Inkrement-Wert auch für die Tabelle setzen,
ALTER TABLE tabelle AUTO_INCREMENT=1234
Damit wird aber nach meinem Test nur der erste neue Datensatz mit dem nächsten freien Wert angelegt, der nachfolgende dann wieder mit einer ID grösser der aktuellen gesamt-grössten.

ansonsten musste auf auto_increment verzichten und per skript die niedrigste verfügbare ID ermitteln und eintragen - was mit rumprobieren aber wohl ne menge unnötiger aufwand ist

naja, kannst ja immer 10-100 IDs zusammenrechnen und dann die summe checken, dann weißte schonmal ob in dem bereich was frei ist oder nicht

möglich ja, lohnen tut sichs nicht.

und außedem ist wie chrisb schon geschrieben hat die id für einen anderen zweck gedacht