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



Peter Muessig-Trapp wrote:
> 
> Moin moin!
> 
> ich hab mir eine Tabelle "basisdaten" angelegt mit einem
> INT-Feld AUTO_INCREMENT
> 
> Mit
> 
>   (1)      insert into basisdaten (id) values (NULL)
> 
> schreibe ich eine neue Zeile (im Feld id steht dann die
> naechst groessere noch nicht verwendete Zahl).
> 
> Diese lese ich mit
> 
>   (2)      $id=mysql_insert_id();      [php3-Syntax]
> 
> aus. Das funktioniert auch so weit wunderbar.
> 
> Was passiert nun aber, wenn just zwischen (1) und (2)
> ein anderer User daher kommt und ebenfalls (1) abschickt?
> 
> Also:
> 
> User1 (1)
> User2 (1)
> User1 (2)
> User2 (2)
> 
> Was kriegt User1 jetzt zurueckgeliefert? Seine id oder
> die von User2? Und was erhaelt User2?
> 
> Fuer Hinweise zur Loesung sehr dankbar!!
> 
> Gruesse aus Hannover, Peter

Hallo Peter

Sei ganz unbesorgt.
a) Mit dem INSERT reservierst Du Dir deine AUTO_INCREMENT Zahl.
Das heisst, das kein anderer diese verwenden kann, solange sie nicht geloescht wird.

b) Der Wert, der von LAST_INSERT_ID() (== SQL-Pendent zu mysql_insert_id() in php) zurueckgeliefert wird, ist vom Client abhaengig.
Das heisst, das User1 nur seinen zuletzt erzeugten AUTO_INCREMENT Wert sieht, egal wie viele andere User waehrenddessen AUTO_INCREMENT Werte erzeugen, solange jeder User eine eigene Connection besitzt.

Gruesse aus Konstanz
Christian


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive