«

»

fév 24

Imprimer ceci Article

Récupération de l’id auto-généré dans une procédure stockée sql db2

Comment récupérer un ID qui a été auto-généré ?

Je viens d’insérer un record dans ma table qui possède un ID auto-incrémenté, comment récupérer l’ID qui vient d’être inséré ?

Lorsque la syntaxe est inconnue, le reflexe est de faire un select sur la table en prenant la dernière row insérée … couteux en I/O et inefficace vu les accès concurrents …

Dans mon cas, tous mes accès se font via des procédures stockées en SQL.

Le corps de ma procédure effectue l’insert, une fois l’insert exécuté, je récupère l’id dans une variable déclarée (ou dans un paramètre OUTPUT de ma procédure stockée) :

DECLARE TEMP BIGINT ;
:
( insert exécuté )
VALUES IDENTITY_VAL_LOCAL ( ) INTO TEMP ;

 

La doc ibm explique qu’il s’agit bien de la valeur Locale au même niveau de traitement, donc ok en cas d’accès concurrent.
maKyo

Lien Permanent pour cet article : http://ma-kyo.com/id-auto-increment-procedure-stockee-sql-db2/