PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu mySQL Auto Increment


Wauzy
13.03.2003, 23:11:37
HI

Ich habe eine Tabelle wo das erste Feld "id" auto increment hat, das brauche ich auch!

Wenn ich nach dem schon einige Einträge in der Tabelle sind will ich nun einen bestimmten löschen, das geht ja auch alles, aber die "id"´s die dann über der gelöschten sind rücken nicht nach, und genau ds sollen sie.

Bsp:
Folgende Einträge sind schon in der Datenbank:

id=1 => Eintrag 1
id=2 => Eintrag 2
id=3 => Eintrag 3
id=4 => Eintrag 4

Nun lösche ich id=2 und Eintrag 2

Dann sieht es so aus

id=1 => Eintrag 1

id=3 => Eintrag 3
id=4 => Eintrag 4

Und der nächste Eintrag sieht dann immer so aus

id=1 => Eintrag 1
id=3 => Eintrag 3
id=4 => Eintrag 4
id=5 => Eintrag 5


Und das soll so nicht sein!!!

Die sollen Nachrücken, das es so aussieht!

id=1 => Eintrag 1
id=2 => Eintrag 3
id=3 => Eintrag 4

Und dann mit dem neuen Eintrag halt so

id=1 => Eintrag 1
id=2 => Eintrag 3
id=3 => Eintrag 4
id=4 => Eintrag 5

Gibt es bestimmt einen einfachen sql Befehl für ich kenne ihn aber nicht, da ich Anfänger bin!

Etwas hilfe wäre nett!

Ben20
13.03.2003, 23:29:15
Das MySQL die Lücken nicht auffüllt ist normal und auch gut so! Wenn Du beispielsweise eine Tabelle hast in der die Usernamen mit ID drin stehen und eine in der E-Mailadressen drinstehen. Beide Tabellen sind über die UserID "verknüpft". Wenn mySQL nun die Lücken füllen würde, wenn ein Eintrag gelöscht wird würden ja alle Zuordnungen durcheinander kommen!

Wenn Du trotzdem ein "nachrücken" haben willst, mußt Du das selbstprogrammieren. Nachdem du den Eintrag gelöscht hast, mußt Du die IDs aller anderen Einträge deren ID größer ist als die gelöschte.


UPDATE tabelle SET id = id - 1 WHERE id > $gelöschteID