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

SQL Procédural MySQL Discussion :

avoir le prochain id ( get.nextSequence() )


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Par défaut avoir le prochain id ( get.nextSequence() )
    je dois recuperer la valeur d un nouvel enregistrement sur un champ auto incremente

    je peux donc faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select max(id) from matable
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into matable ( id ) values (   monid+1 )

    sous oracle il existe un getnextsquence()

    y a t il un equivalent sous mysql

    merci

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Par défaut
    .

    Je ne sais pas s'il existe une fonction pour cela.
    A voir du coté documentation php, au niveau de leurs fontions.
    Ou même dans la documentation de Mysql.

    Une chose est certaine tu ne peux faire le select max(id) from table parce que si tu supprime le denier id (admettons 10), et que tu cherche le max id (ce sera donc 9), mais ton auto_increment ajoutera l'enregistrement à 11.

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Par défaut
    ok merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 73
    Par défaut
    salut


    select last_insert_id(); est supposé fonctionner...

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Par défaut
    ca me retourne toujours 0 meme si je fais

    select last_insert_id() from transaction_id from matable

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 73
    Par défaut
    après quelqeus recherche sur le net j'ai découvert que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW TABLE STATUS FROM DB_NAME LIKE 'TABLE_NAME';
    donne comme résultat plusieurs colonne dont la colonne AUTO_INCREMENT
    alors en faisant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ResultSet data = stmt.executeQuery("show table status from db_name like 'table_name'");
    int nextId=-1;
    if(data.next()) 
        nextId =  getInt("Auto_increment");
    }
    tu devrait arriver à avoir le dernier id qui s'est insérer dans la BD.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 401
    Par défaut
    Ce serait peut être plus simple de mettre un Auto increment sur la table ?

  8. #8
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Par défaut
    Citation Envoyé par shadeoner
    Ce serait peut être plus simple de mettre un Auto increment sur la table ?
    C'est ce qu'il fait, mais il souhaite connaître le dernier id a inseré.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 401
    Par défaut
    Citation Envoyé par Thierry8
    Citation Envoyé par shadeoner
    Ce serait peut être plus simple de mettre un Auto increment sur la table ?
    C'est ce qu'il fait, mais il souhaite connaître le dernier id inseré.
    Bin non (vu dans l'en tête du topic) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into matable ( id ) values (   monid+1 )

  10. #10
    Membre éclairé
    Inscrit en
    Avril 2005
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 300
    Par défaut Re: avoir le prochain id ( get.nextSequence() )
    Citation Envoyé par dietrich
    je dois recuperer la valeur d un nouvel enregistrement sur un champ auto incremente

  11. #11
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut Re: avoir le prochain id ( get.nextSequence() )
    Citation Envoyé par dietrich
    je dois recuperer la valeur d un nouvel enregistrement sur un champ auto incremente

    je peux donc faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select max(id) from matable
    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into matable ( id ) values (   monid+1 )

    sous oracle il existe un getnextsquence()

    y a t il un equivalent sous mysql
    Non

    http://mysqldatabaseadministration.blogspot.com/2006/03/once-solution-to-triggers-with-auto.html

Discussions similaires

  1. Développement jeux vidéo : quelles bases à avoir absolument ?
    Par Ezechiel dans le forum Développement 2D, 3D et Jeux
    Réponses: 175
    Dernier message: 20/02/2018, 16h14
  2. Réponses: 2
    Dernier message: 26/03/2009, 15h36
  3. [CR] Avoir seulement une page blanche qd la base est vide???
    Par littleChick dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 13/08/2002, 18h26
  4. Créer une fenêtre flottante qui ne peut avoir le focus
    Par BestofMac dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/07/2002, 10h46
  5. [réseaux] Bench en Perl pour avoir le débit entre 2 pc
    Par Frich dans le forum Programmation et administration système
    Réponses: 4
    Dernier message: 22/05/2002, 17h22

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