phpbar.de logo

Mailinglisten-Archive

Re: SEQUENCE-Funktionalität
Archiv Mailingliste mysql-de

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

Re: SEQUENCE-Funktionalität



Mark Arnold wrote:
> 
> Hi,
> 
> Alex Killing schrieb:
> >
> > Hallo.
> >
> > >
> > > Gibt es bei mySQL eine SEQUENCE-Funktionalität wie bei Postgres, die die
> > > Verwaltung einer systemweit eindeutigen GUID (global unique ID) erlaubt,
> >                    ---------- (= Datenbank-weit ?)
> > > oder muß man so etwas durch irgendwelche Tricks (Sekunden siet 1970 +
> > > Prozess-ID des laufenden Prozesses) nachbilden?
> > >
> > > Es gibt zwar das AUTO_INCREMENT-Feature, das jedoch immer nur
> > > tabellenweit eindeutig ist und außerdem IDs in Sonderfällen (Löschen des
> > > Datensatzes mit der höchsten ID) wiederverwendet.
> >
> > Meines Wissens nicht. Mach doch einfach eine Tabelle "guidtab" in der
> > nur ein Autoincrement-Feld drin ist und benutze die zum erstellen Deiner
> > GUID. Dann schreibst Du dir eine Funktion get_next_guid() in der dort
> > ein Eintrag gemacht wird und die GUID zurückgibt. In php oder perl ein
> > Dreizeiler, oder hab ich da was übersehen ?
> >
> 
> Leider ja: Zwei Benutzer wollen einen neuen Datensatz anlegen. Der erste
> holt sich eine neue ID. Noch bevor sein Programm den neuen Eintrag in
> die Datenbank schreibt und die ID-Tabelle aktualisiert hat, holt sich
> User 2 eine neue ID, die aber noch die gleiche ist, die auch User 1
> bekommen hat. In diesem Fall werden zwei neue Datensätze angelegt, die
> die gleiche ID haben, und es gibt einen Fehler.
> 
> Ich kann auch nicht den Datensatz ohne ID speichern und dann schauen,
> welche ID er zugewiesen bekam. Hier tritt das gleiche Problem auf: Bevor
> die ID abgefragt werden kann, wird noch ein neuer Datensatz angelegt und
> ich bekomme die falsche ID zurück.
> 
> MARK

Hallo Mark

Entschuldige, aber Alex setzt auf AUTO_INCREMENT auf.
Dabei wird zuerst ein neuer Wert in die Tabelle geschrieben, und dann mit LAST_INSERT_ID wieder ausgelesen.
Das ist Threadsave.

Tschau
Christian


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive