# mysql create zeile get autoincrementid



## Tallan (30. Sep 2009)

Hallo zusammen,

ich habe folgendes Problem :

in den Tabellen a, b, c wird jeweils eine Zeile erstellt.
Jede Zeile besitzt eine autoincrementID.
Die Zeile in Taballe a soll die ID's der neuen Zeilen von b und c enthalten.
Da ich diese ID nicht selbst übergebe stellt sich die Frage wie ich sie erhalte.
Gibt es eine möglichkeit diese schon beim erstellen der Zeile quasi als Return zu erhalten?
Dazu konnte ich leider nichts finden, oder muß ich extra ein Query mit Select ausführen um sie zu erhalten?

Die Zeile erzeuge ich wie folgt

```
PreparedStatement pst = dbcon.cn.prepareStatement("INSERT INTO tabellenname (name, data) VALUES ( ?, ?)");

					pst.setString(1, "bla");

					pst.setString(2, "blub );

					pst.execute();
```

wobei die anweisung eine Reihe von Transaktionen darstellen.
Die ID selbst wird von der Datenbank vergeben und incrementiert.


----------



## eRaaaa (30. Sep 2009)

huhu,

also in deinem fall bleibt dir nichts anderes übrig *glaub ich*.
es gibt zwar LAST_INSERT_ID() , welches dir die letzte eingefügt autoinkrement id liefert (nach einem insert), da du ja aber in deinem fall eig. die letzten beiden brauchst, kommst du denk ich mal ohne zusätzliches select nicht aus. (aber was ist daran so schlimm?)

[DUKE]die aussage ist ohne gewähr[/DUKE]


----------



## maki (30. Sep 2009)

Es gibt noch die Möglichkeit das mit JDBC 3.0 Boardmitteln zu lösen (Statement#getGeneratedKeys), wie steht n der MySQL Doku: MySQL :: MySQL 5.0 Reference Manual :: 20.4.5.1 Basic JDBC Concepts


----------

