Wenn Sie einen Datensatz in eine Tabelle mit einer
          AUTO_INCREMENT-Spalte einfügen, können
          Sie den in dieser Spalte gespeicherten Wert mit der Funktion
          mysql_insert_id() erhalten.
        
          In Ihren C-Anwendungen können Sie überprüfen, ob ein Wert
          in einer UTO_INCREMENT-Spalte gespeichert
          wurde. Hierzu führen Sie folgenden Code aus (der voraussetzt,
          dass Sie sich vom Erfolg der Anweisung überzeugt haben). Der
          Code ermittelt, ob die Anfrage ein INSERT
          mit einem AUTO_INCREMENT-Index war:
        
if ((result = mysql_store_result(&mysql)) == 0 &&
    mysql_field_count(&mysql) == 0 &&
    mysql_insert_id(&mysql) != 0)
{
    used_id = mysql_insert_id(&mysql);
}
          Weitere Informationen finden Sie unter
          Abschnitt 24.2.3.36, „mysql_insert_id()“.
        
          Wurde ein neuer AUTO_INCREMENT-Wert
          generiert, so können Sie diesen auch erhalten, indem Sie die
          SELECT LAST_INSERT_ID()-Anweisung mit
          mysql_query() ausführen und den Wert aus
          der Ergebnismenge dieser Anweisung abfragen.
        
          Für LAST_INSERT_ID() wird die zuletzt
          generierte ID für jede Verbindung im Server gespeichert. Sie
          wird von keinem anderen Client geändert, noch nicht einmal
          dann, wenn Sie eine andere
          AUTO_INCREMENT-Spalte mit einem
          nichtmagischen Wert aktualisieren (also einem Wert, der nicht
          NULL und nicht 0 ist).
        
Wenn Sie die für eine Tabelle generierte ID benutzen und in eine andere Tabelle einfügen möchten, erledigen Sie dies mit SQL-Anweisungen wie diesen:
INSERT INTO foo (auto,text)
    VALUES(NULL,'text');              # generiert ID durch Einfügen von NULL
INSERT INTO foo2 (id,text)
    VALUES(LAST_INSERT_ID(),'text');  # benutzt ID in einer zweiten Tabelle
          Beachten Sie, dass mysql_insert_id() den
          Wert liefert, der in einer
          AUTO_INCREMENT-Spalte gespeichert war, egal
          ob dieser Wert automatisch durch Speichern von
          NULL oder 0 generiert
          oder als expliziter Wert angegeben wurde.
          LAST_INSERT_ID() liefert nur automatisch
          generierte AUTO_INCREMENT-Werte. Wenn Sie
          einen expliziten Wert, der nicht NULL oder
          0 ist, speichern, so beeinflusst dieser
          nicht den Rückgabewert von
          LAST_INSERT_ID().
        
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

