phpbar.de logo

Mailinglisten-Archive

[php] Nochmal kurz AUTO_INCREMENT

[php] Nochmal kurz AUTO_INCREMENT

Ulf Wendel ulf_(at)_redsys.de
Wed, 05 Jan 2000 11:39:07 +0000


Malte Schomers wrote:

> Kann ich auch herausfinden, welche ID MySQL vergeben WÜRDE, wenn ich jetzt eine
> Tabelle erstellte? Sprich = Der höchste Index + 1

+++ brutal

select max(id) from 

+++ PHPLib

"nextid($sequence_name)

This function will return a sequence number from the sequence named by
$sequence_name. This number is guaranteed to be obtained in an atomic
manner and can be used as a primary key.",
http://phplib.netuse.de/documentation/documentation-3.html#ss3.1

+++ Look-Up-Tabelle

Aufbau einer Look-Up Tabelle, die stets die aktuelle NextID enthält,
verbunden mit der -ausschließlichen- Verwendung dieser Tabelle.

Vorgehen:

 Mit dem Konstruktor Feldtyp und Maximalwert in allen Tabellen
ermitteln, die überwacht werden sollen.
 - zu überwachende Tabellen locken
 - select max(idfeld) from tabelle
 - Falls Feldtyp "string", "autoid_00000001"... berechnen
 - Falls Feldtyp "zahl", "00000001"... berechnen
 - ermittelte nextid speichern in Look-Up Tabelle
 - unlock

 Im folgenden genügt eine Abfrage der Look-Up Tabelle. 
  - Falls Paranoia, Look-Up Tabelle für die Dauer der Abfrage und des
Updates locken.

Ulf


php::bar PHP Wiki   -   Listenarchive