Je souhaite obtenir la valeur de la dernière insertion d'ID dans une table. Comment puis-je faire ceci?DB2 comment obtenir le dernier ID d'insertion d'une table
Répondre
Eh bien la solution que j'utilise est:
Cela devient la colonne id de la dernière ligne insérée dans le DB :)
SELECT IDENTITY_VAL_LOCAL() AS VAL FROM SYSIBM.SYSDUMMY1
Voir docs.
SYSDUMMY1? Je ne peux pas trouver cette table dans le schéma sysibm ... :) –
Etes-vous ironique? Voir http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.sql.ref.doc/doc/r0002369.html –
Jetez un oeil à cette réponse.
http://www.sitepoint.com/php-database-db2/
// get the last inserted ID into the specified table
// int lastInsertID(string $tblName)
function lastInsertID($tblName)
{
if ($this->transIsOpen())
{
$sql = "SELECT SYSIBM.IDENTITY_VAL_LOCAL() AS id FROM " . $tblName;
$rs = $this->query($sql);
return $this->fetch($rs, "id");
}
return -1;
}
OU ce
http://www.php.net/manual/en/function.db2-last-insert-id.php#98361
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)))
Uhmmm ... Oracle! = DB2 – barrypicker
C'est un tutoriel pour Java pas Oracle – Anatoly
Ensuite, vous ne répondez pas du tout à la question de l'OP. – barrypicker
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
Tragédie . Cette documentation "SELECT from INSERT" a changé d'emplacement ou est devenue indisponible. – starlocke
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