phpbar.de logo

Mailinglisten-Archive

[php] auto_increment ueberlauf > fehlende Werte mit php ermitteln

[php] auto_increment ueberlauf > fehlende Werte mit php ermitteln

Ralf Geschke ralf_(at)_php-experiments.de
Sat, 30 Dec 2000 04:54:43 +0100


Holger Faustmann wrote:

> Wenn ich als Beispiel ein tinyint(x) unter mysql definiere,
> dann ist bei dem Eintrag mit der ID 127 schluss, auch wenn
> nur zwei Eintraege in der DB stehen.

Genau. 

> Gibt es in PHP/MySQL eine Standardfunktion/-Loesung um die fehlenden

Nein. 

> Werte in der DB zu ermitteln oder muss ich mir selber eine Loesung
> basteln?

Ja. 

> Wer mit jetzt sagt ich soll das Feld ID auf int(10) aendern,
> der hat das Problem nicht verstanden.

Das hab' ich tatsaechlich nicht. Ich bin auch noch nie
auf die Idee gekommen, ein tinyint-Feld mit auto_increment
zu versehen. 

> Hintergrund:
> Wenn ein Benutzer einer Internet-Anwendung (z.B. Redaktionssystem)
> staendig seiten loescht, werde die Seiten-ID's immer groesser, obwohl,
> nur wenige Seiten im System gespeichert sind.

Genau. Bzw. wenn die Eintraege vom Ende her geloscht werden, 
damit also keine Luecken entstehen, werden bei MySQL < 3.23.xx
unter Benutzung der ISAM-Tabellentypen diese freien IDs wieder
aufgefuellt, bei MySQL ab 3.23.xx (bei MyISAM) hingegen nicht. 

MySQL stellt eben sicher, dass die vergebene ID nicht doppelt
vorkommt, genau dies ist die Absicht von auto_increment. 

Beste Gruesse,
   Ralf


php::bar PHP Wiki   -   Listenarchive