phpbar.de logo

Mailinglisten-Archive

Re: AUTO INCREMENT
Archiv Mailingliste mysql-de

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

Re: AUTO INCREMENT



Marc Logemann schrieb am Donnerstag, den 30. September 1999:
> > Macht es aus Portabilitätsgründen überhaupt Sinn, das auto_increment
> > Feature zu verwenden? Viele andere Datenbanken bieten ja keine solche
> > Möglichkeit des automatischen Hochzählens.
> 
> hmm, haben die Big-Player wie Informix oder ORacle nicht auch solche
> Features?

Ich glaube, das macht man dann mit Sequenzen - aber frag' mich jetzt
bitte nicht, wie das genau aussieht ...

> > Wie verfährt man am also besten, wenn man einen solchen Mechanismus
> > DB-unabhängig realisieren will?
> 
> select max(id) from tabelle
> 
> und dann in der jeweiligen Sprache auf das resultset 1 dazuaddieren.
> 
> Koennte natuerlich kritisch werden bei 2 Requests in _genau_
> gleicher sekunde, muesste man ja dann eigentlich mit manuellem
> locking arbeiten oder?

Genau.  In MySQL wäre das so:
  LOCK TABLES tabelle WRITE;
  SELECT MAX(id) FROM tabelle;
  INSERT INTO tabelle VALUES (_diese_id_, ...);
  UNLOCK TABLES;

Diese Lösung hat dann aber auch das Problem, daß eine ID nochmal
vergeben wird, falls man den Datensatz mit der höchsten ID löscht.

Diese Problem läßt sich dann nur vermeiden, wenn man einen eigenen
Zähler für die Auto-ID verwaltet.

Regards,
  Martin
-- 
Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://home.pages.de/~ramsch/ >
PGP KeyID=0xE8EF4F75 FiPr=52 44 5E F3 B0 B1 38 26  E4 EC 80 58 7B 31 3A D7

---
*** 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