2010-06-21 12 views

Répondre

19

Eh bien la solution que j'utilise est:

Cela devient la colonne id de la dernière ligne insérée dans le DB :)

+2

Pour plus d'informations sur cette approche, voir la documentation sur la [SELECT from INSERT statement] (http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2.doc.relg%2Finsl.htm) – Steven

+1

Tragédie . Cette documentation "SELECT from INSERT" a changé d'emplacement ou est devenue indisponible. – starlocke

+2

Check section * Sélection des valeurs insérées * dans votre Guide de programmation DB2 SQL. Un exemple de mon guide est 'SELECT EMPNO, HIRETYPE, HIREDATE À PARTIR DE LA TABLE FINALE (INSÉRER DANS EMPSAMP (NOM, SALAIRE, DEPTNO, NIVEAU) VALEURS ('Mary Smith', 35000.00, 11, 'Associer'))' – Telemat

13
SELECT IDENTITY_VAL_LOCAL() AS VAL FROM SYSIBM.SYSDUMMY1 

Voir docs.

+0

SYSDUMMY1? Je ne peux pas trouver cette table dans le schéma sysibm ... :) –

+0

Etes-vous ironique? Voir http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0002369.html –

0
int keyId = -1; 
preparedStatement.executeUpdate(); 
resultSet = preparedStatement.getGeneratedKeys(); 
if (resultSet.next()) { 
    keyId = rs.getInt(1); 
} 

https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#getGeneratedKeys()

Mise à jour: et ne pas oublier de créer PreparedStatement avec le drapeau suivant Statement.RETURN_GENERATED_KEYS sinon cela ne fonctionnera pas)))

+0

Uhmmm ... Oracle! = DB2 – barrypicker

+0

C'est un tutoriel pour Java pas Oracle – Anatoly

+0

Ensuite, vous ne répondez pas du tout à la question de l'OP. – barrypicker