Mailinglisten-Archive |
Werner Stürenburg schrieb am Mittwoch, den 6. Oktober 1999: > Ich habe eine Tabelle: > > CREATE TABLE pferde ( > id mediumint(8) unsigned DEFAULT '0' NOT NULL auto_increment, > [...] > > Bei jedem Eintrag lasse ich mir eine E-Mail zuschicken. Heute > erhalte ich: > > Subject: > Pferd-Id: 274, Rheinländer angelegt von kid: 405 [...] > Subject: > Pferd-Id: 274, Deutsches Reitpony angelegt von kid: 404 [...] > Wie kann das sein? Das könnte passieren, wenn die "alte" id 274 zu einem Zeitpunkt gelöscht worden war, wo sie die höchste vorkommende ID war. Denn MySQL vergibt bei AUTO_INCREMENT-Feldern immer des aktuelle Maximum plus Eins. Erst mit dem MyISAM-Tabellenformat ab MySQL V3.23.x sind AUTO_INCREMENT-Felder wirklich garantiert wachsend, da dann nicht einfach das Maximum der vorhandenen Werte genutzt wird, sondern pro Tabelle ein eigener Zähler verwaltet wird. Lösung des Problems mit den aktuellen MySQL-Versionen ist entweder genau das - einen eigenen Zähler verwalten -, oder man muß darauf achten, daß nie der Datensatz mit der höchsten ID gelöscht wird. Ciao, Martin -- Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://home.pages.de/~ramsch/ > PGP KeyID=0xE8EF4F75 FiPr=5244 5EF3 B0B1 3826 E4EC 8058 7B31 3AD7 --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive