phpbar.de logo

Mailinglisten-Archive

Re: doppelter Eintrag bei autoincrement !!!
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: doppelter Eintrag bei autoincrement !!!



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


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive