DS gelöschen, ID Zählt weiter?

User Maik

Mitglied
Hallo
Ich habe eine Datenbank angelegt (MySQL) und greife mit PHP auf die Datenbank zu. Beim löschen eines Datensatz wird dieser auch gelöscht.

<a href="show.php?nr=<?echo $loech;?> [ Datensatz löschen ] </a>
function loeschen(){
$db = mysql_connect("10.212.72.151","root");
mysql_select_db("Datenbankname",$db);
$query ="DELETE FROM Tabelle_daten WHERE ID = '".$_GET['nr']."'";
mysql_query($query);
}
Aber beim eingeben eines neuen Datensatzes ist die ID nicht 0 sondern läuft bei den letzten gelöschten (z.b.122) Datensatz weiter (also 123).
Die ID in MySQL ist auf AUTO_INCREMENT gesetzt und bei der Eingabe eines neuen Datensatzes nicht angesprochen.

Wie ist die Überlegung, das Programm so zu Programmieren das es bei der nächst möglichsten kleinste Zahl wieder anfängt.

Danke Maik
 
Denkbar wäre die letzte ID auszulesen und beim einfügen die letzte ID +1 zunehmen dann haste logischer weise ne fortlaufende ID wäre denkbar, zumindest für mich ;)

Greetz AcidOne
 
Die fortlaufende ID habe ich immer da die ID in der Mysqk DB auto_INCREMENT ist. Das nicht so schöne ist dass, wenn ich mehre Datensätze lösche auch dann die freihen ID sinnlos in der Datenbank liegen. Um diese ID (leere) beim anlegen neuer Datensätze zu nutzen suche ich nach einer Lösung.
 
Warum willst du das überhaupt Willst du die ID wieder ausgeben, meistens sind es ja nur Primarys hmmm naja
 
Das ist in MySQL und jeder anderen Datenbank extra so gewollt, dass die ID weitergezählt wird. Hat auch alles seine Gründe. Beispiel: Du nutzt die ID als PrimaryKey und verweist aus einer andere Tabelle darauf. Dann löscht du diesen Datensatz und vergisst den anderen auch zu löschen, bzw. vielleicht soll der andere ja gar nicht gelöscht werden. Jetzt legst du einen neuen Datensatz mit der alten ID an, der mit dem anderen gar nichts zu tun hat ... aber er wird wieder in Verbindung gesetzt weil der key in der anderen Tabelle noch darauf verweist ... kurz: Es kann deine Datenbestände schnell unbrauchbar machen wenn du nicht genau alles durchdenkst.

Also musst du dir genau überlegen ob du mit den IDs in irgendeiner Weise weiterarbeitest oder irgendetwas in Verbindung steht. Sollte dies der Fall sein, dann aufpassen wenn du die gleiche ID wiederverwenden willst.
 
Zurück