mysql index

DerFragant

Grünschnabel
Hallo
ich hab in meiner Mysql Datenbank gerade einen Index angelegt, der bewirkt, dass wenn ein neuer Eintrag kommt dieser Eintrag automatisch eine id bekommt und wenn dann noch ein eintrag kommt, der neue dann eine höhere id hat.

nun wollte ich fragen ob es möglich wäre einen index anzulegen, dass wenn ich einen alten eintrag lösche und ein neuer hinzukommt der neue die id des alten bekommt, damit dann jede id immer belegt ist.
 
Jein.
Ein autincrement-Feld steigt immer weiter. Du müsstest die ID von Hand erstellen.
Ich hatte mal ein Beispiel geschrieben:
MySQL First not used Id

Aber der folgende Satz gilt leider für jede Art wo du irgendwei die ID von Hand ermittelst:
ACHTUNG!
Eignet sich nicht um in einer Multiuser-Umgebung die IDs zu vergeben, da zwieschen ID auslesen und neuen Beitrag posten jemand anderes die ID besetzen kann.
 
Eine ID liegt der Verwendung einer Sequenz zu Grunde und Sequenzen laufen immer vorwärts, nie gehen sie zurück und füllen irgendwelche Lücken. Was stört dich daran, das die ID fehlt, wenn man den Datensatz löscht? Es ist doch nur eine ID. Im Normalfall kommt sie dem Benutzer noch nicht mal zu Gesicht.
 
Das Problem bei ganze Sache ist, wenn du mehrer Tabelle benuzt, z.B. user und user_information
user_information orintiert sich dann idR. an der id aus der tabelle user. Änderst du eine ID in der tabelle user so wird user_information den User nicht mehr finden oder zeigt die falschen Daten an.

Aber wie Saftmeister bereits sagte, die ID ist eher für den Entwickler von großer Bedeutung, für den User hat diese keinerlei an nutzen. Also lass lieber die ID, ID sein ^^
 
Zurück