# Letzte, automatisch erzeugte, ID via SQL erhalten



## Leroy42 (5. Mai 2007)

Ich habe das schonmal implementiert, komme aber zur Zeit
nicht an meine alten Sourcen ran und weiß auch nicht,
nach welchem Stichwort ich suchen soll.   

Ich erzeuge einen neuen Datensatz einer mySQL-Datenbank
(zum Beispiel einen neuen Kunden), der eine automatische
ID zugewiesen bekommt: _`ID` INT NOT NULL AUTO_INCREMENT_

Wie heißt nochmal die Funktion (SQL-Methode??) mit der ich,
die gerade eben vergebene ID dieses Kundendatensatzes erhalte
um sie dann weiterzuverwenden?


----------



## Tobias (5. Mai 2007)

http://dev.mysql.com/doc/refman/5.1/de/information-functions.html => LAST_INSERT_ID()

mpG
Tobias


----------



## Leroy42 (5. Mai 2007)

Danke!


----------



## Leroy42 (5. Mai 2007)

Irgendwie verstehe ich es nicht: Ich habe

"CREATE TABLE `rKunde` ("
		+ "`id` INT NOT NULL AUTO_INCREMENT ,"
		+ "`name` TEXT NOT NULL ,"
		+ "`strasse` TEXT NOT NULL ,"
		+ "`plz` TEXT NOT NULL ,"
		+ "`ort` TEXT NOT NULL ,"
		+ "`zusatz1` TEXT NOT NULL ,"
		+ "`zusatz2` TEXT NOT NULL ,"
		+ "`info` TEXT NOT NULL ,"
		+ "PRIMARY KEY ( `id` )"
		+ ")"	

Rufe danach 
_insert into rKunde (name,strasse,plz,ort,zusatz1,zusatz2,info) values ('Egon','','','','','','')_
auf und erhalte umgehend danach mit
_select last_insert_id()_
den Wert _1460240_  :shock: 

Obwohl die in der Tabelle gespeicherte ID korrekt von 1 hochzählt

Gebe ich ein
_select last_insert_id() from rKunde_
erhalte ich 7 mal den Wert  1460241

Bei jeder Abfrage nach last_insert_id() kommt ein um eins höherer Wert!  ???:L


----------



## Guest (5. Mai 2007)

Siehe Statement#getGeneratedKeys()


----------



## Leroy42 (5. Mai 2007)

Anonymous hat gesagt.:
			
		

> Siehe Statement#getGeneratedKeys()



 :shock: 

Wo soll ich denn nach getGeneratedKeys() suchen?
Ist das eine Java-Methode aus irgendeinem Package??  ???:L


----------



## Guest (5. Mai 2007)

java.sql.Statement#getGeneratedKeys() ist gemeint.


----------

