phpbar.de logo

Mailinglisten-Archive

letzter Index

letzter Index

Norbert Pfeiffer mysql-de_(at)_lists.bttr.org
Mon, 12 Aug 2002 12:12:53 +0200


Hi,

> > Ja, gibt es, "Select LAST_INSERT_ID()", wobei keine
> > Unterscheidung gemacht wird, welcher Index in welcher
> > Tabelle.
> dann ist sowas aber nicht wirklich brauchbar.
> Ist es wenigstens der letzte Index auf DIESER Verbindung?
> Sonst bringt eine zweite, gleichzeitig laufende Abfrage
> ja Chaos...
da schauen wir doch mal in das Manual:

<copy>
9.4.3.30 mysql_insert_id()

my_ulonglong mysql_insert_id(MYSQL *mysql)

Beschreibung
Gibt die Kennung zurück, die für eine AUTO_INCREMENT-Spalte
durch die vorherige Anfrage erzeugt wurde. Benutzen Sie diese
Funktion, nachdem Sie eine INSERT-Anfrage für eine Tabelle
durchgeführt haben, die ein AUTO_INCREMENT-Feld enthält.

Beachten Sie, dass mysql_insert_id() 0 zurückgibt, wenn die
vorherige Anfrage keinen AUTO_INCREMENT-Wert erzeugt hat.
Wenn Sie den Wert für spätere Benutzung speichern wollen,
stellen Sie sicher, dass Sie mysql_insert_id() unmittelbar
nach der Anfrage aufrufen, die den Wert erzeugt.

mysql_insert_id() wird nach INSERT- und UPDATE-Statements
aktualisiert, die einen AUTO_INCREMENT-Wert erzeugen oder
einen Spaltenwert auf LAST_INSERT_ID(ausdruck) setzen.
7.3.5.2 Verschiedene Funktionen.

Beachten Sie auch, dass der Wert der SQL-LAST_INSERT_ID()
-Funktion immer den aktuellsten erzeugten AUTO_INCREMENT
-Wert enthält, und zwischen Anfragen nicht zurückgesetzt
wird, weil der Wert dieser Funktion im Server gewartet wird.

Rückgabewerte
Der Wert des AUTO_INCREMENT-Felds, das durch die vorherige
Anfrage aktualisiert wurde. Gibt 0 zurück, wenn es keine
vorherige Anfrage auf der Verbindung gab oder wenn die
Anfrage keinen AUTO_INCREMENT-Wert aktualisierte.
</copy>

Fazit, der Wert ist also auf die Verbindung bezogen.
Somit koennte also kein Chaos entstehen, ausser man
verwendet eventuell persistente Verbindungen.

Notfalls kann man aber auch mit
SELECT MAX(ID) FROM tabelle;
den hoechsten Wert eine auto_increment-Spalte ermitteln.


m. b. G. Norbert
_____________________
normal:  02292-681769
Notruf:  0177-2363368
---------------------
e.o.m.

---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive