Mailinglisten-Archive |
Hallo! Am Freitag, 28. September 2001 00:48 schrieb Pete 'Baldur' Hillebrand: > ich habe eine Tablle mit einer id-spalte die auto_icrement ist. > Wenn ich eine Zeile lösche (z.b. 101), und danach eine neue einfügen lasse, > dann bekommt die nächtste Zeile nicht den höchsten freien Wert, sondern > einen wert, der noch nicht vergeben wurde (also 102), was ja auch vom > Prinzip her sinn machen kann. Das die 102 ausgewählt wird macht Sinn, den genau das sorgt für die Integrität Deiner Datenbank/Daten/Datensätze. Das ganze ist ein Konzept. > Allerdings möchte ich, auch wenn aus der Mitte eine Zeile gelöscht wird, > dass mit Hilfe von auto_increment die "Lücken gefüllt" werden. Wozu sollen den die Lücken eingefüllt werden? Stört Dich eine Lücke von zum Beispiel 100 -> 700? Befreie Dich von dem Gedanke, das es in den ID's keine Lücken geben darf, weils schöner aussieht. Es ist egal, den jedes Programm sollte so flexibel geschrieben sein, daß solche Lücken egal sind. Der Datenbank ist es auf alle Fälle egal. > Könnt ihr mir da einen Fingerzeig geben ?! Die einzige Lösung ist, die Spalte auszulesen, die höchste ID/Zahl zu ermitteln und dann schauen, welche ID/Zahl frei ist. Wenn Du die hast, verwendest Du ein Insert und gibst die ID bzw. freie ID mit an. Aber sobald Du mal eine relationale Datenbank aufbaust, mit mehr als einer Tabelle, wo mehrere Tabellen "zusammen hängen", also Datensätze "von einander abhängig sind", kann das ins Auge gehen. MfG, André Laugks --- !!NEU!! Fragen und Antworten zu MySQL und dieser Liste unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive