IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DB2 Discussion :

Obtenir la valeur de l'id auto généré


Sujet :

DB2

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 48
    Par défaut Obtenir la valeur de l'id auto généré
    Bonjour,

    J'aimerais savoir s'il est possible d'obtenir la valeur générée lors d'un INSERT pour une colonne déclarée de cette manière :

    ID INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1 )

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Par défaut
    C'est possible mais que dans un programme car la valeur d'une colonne IDENTITY ne peut être renvoyée que dans une variable comme le montre l'exemple ci-dessous extrait du Redbook IBM.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    /exec sql CREATE TABLE EMPLOYEE                 
    +         (EMPNO INTEGER GENERATED ALWAYS AS IDENTITY 
    +         (START WITH 1 INCREMENT BY 1),              
    +         NAME CHAR(30),                              
    +         SALARY DECIMAL(5,2),                        
    +         DEPT SMALLINT)                              
    /end-exec                                             
    /exec sql INSERT INTO EMPLOYEE                        
    +         (NAME, SALARY, DEPT)                        
    +         VALUES('Rupert', 989.99, 50)                
    /end-exec                                             
    /exec sql VALUES IDENTITY_VAL_LOCAL() INTO :ivar 
    /end-exec
    La variable ivar est déclarée en numérique quelque part dans le programme.
    L'instruction VALUES IDENTITY_VAL_LOCAL() INTO ... doit suivre immédiatement l'instruction INSERT INTO ...

  3. #3
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 48
    Par défaut
    Parfait! merci

    Pour info voici le code java qui permet de récupérer l'id auto généré:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Statement stmt = conn.createStatement();
    stmt.execute("INSERT INTO XX.YYY(COL1, COL2) VALUES (113, 'JFD')" );
     
    ResultSet rs = stmt.executeQuery("SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM.SYSDUMMY1");
    if(rs.next())
    {
    	System.out.println(rs.getString(1)); // ID auto généré
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 20
    Dernier message: 20/03/2015, 14h36
  2. Modifier la valeur courante de l'auto-increment
    Par Matth_S dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/03/2006, 14h02
  3. [MySQL] Obtenir la valeur de l'auto-increment lors d'une insertion
    Par yazerty dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/01/2006, 15h18
  4. Réponses: 3
    Dernier message: 11/02/2005, 12h20
  5. obtenir le prochain ID en mode auto-increment
    Par arnololo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/12/2003, 17h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo