Hallo,
ich habe eine Datenbank in die ich Datensätze mit einer eindeutigen ID speichere.
Das mache ich mit Autoincrement.
nun ist aber mein Problem das wenn ich einen Datensatz lösche, diese ID nicht neu vergeben wird an den nächsten erzeugten datensatz,
sondern das Autoincrement einfach weiter hochzählt.
gibt es eine möglichkeit dies zu ändern?
Freundliche Grüße
Autoincrement zurücksetzen??
Je nach Datenbanksystem gibt es da in der Tat vielleicht eine Möglichkeit. Ich arbeite allerdings seit über 20 Jahren mit Datenbanken und habe in der Zeit noch nie(!) auch nur ansatzweise die Notwendigkeit dafür gesehen.jova90 hat geschrieben:gibt es eine möglichkeit dies zu ändern?
Vielleicht ist dein Problem ja ein ganz anderes. Warum glaubst du denn das tun zu müssen?
Eine kleine Portion Erläuterung kann aber nicht schaden:Balmung hat geschrieben:Das ist normal und richtig so.
Den Wunsch nach einer ununterbrochenen Folge von Primärschlüsseln findet man gar nicht selten, aber so ein Lückenfüllen wäre allerhöchstens dann vertretbar, wenn die Datenbank einen und nur einen Benutzer hat (oder immer nur einen zur gleichen Zeit). Und der muss auch sehr genau wissen, was er da tut (Fremdschlüssel!).
Und so bald die Datenbank ein bisschen größer wird, würde es den Betrieb gewaltig aufhalten, wenn die Folge der vorhandenen Primärschlüssel immer erst auf Lücken geprüft werden müsste, bevor einer vergeben wird.
Ein Rücksetzen einer Autoincrement-Folge auf einen kleineren Wert, also kein Füllen von Lücken, geht bei manchen Datenbanken schon, setzt aber auch voraus, dass nur einer auf die Datenbank zugreift. In einer eigenen und lokalen Datenbanktabelle kann man das evtl. mal machen, wenn man beispielsweise hintereinander eine Menge Murks hineingeschrieben hat, dieser Murks aber noch nicht mit erhaltenswerten Sätzen in anderen Tabellen verknüpft ist. Beispiel, alles, was einen Primärschlüssel oberhalb von 100 hat, war falsch, soll weg, und damit werden keine Relationen zerstört.
Das hat aber in diesem Forum eigentlich nichts zu suchen, es ist Datenbankverwaltung pur.