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

Langage SQL Discussion :

Récupérer dernier enregistrement inséré


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut Récupérer dernier enregistrement inséré
    Bonjour,

    J'ai fait une requête INSERT et là je cherche à récupérer le dernier id insérer dans ma table. J'ai utilisé LAST mais sa ne fonctionne pas sous oracle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                SELECT LAST(id) FROM maTable;
    Merci de votre aide

  2. #2
    Membre émérite Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Par défaut
    De manière générale, il n'est pas possible de sortir le dernier enregistrement d'une table sauf si vous avez une colonne notifiant l'heure de l'enregistrement...

    si ce n'est pas le cas, vous n'avez qu'a imaginez votre table comme un sac de bille dans lequel je rajoute une bille que vous ne voyez pas et je vous demande de la retrouver.

  3. #3
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Bonjour,

    A tester (en fonction du SGBD) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select top 1 Id from Matable order by Id desc

  4. #4
    Membre émérite Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Par défaut
    WHAT !!!


    C'est complètement absurde comme requête...
    Si j'insère l'id 2 puis l'id 1, ca me sortira le 2 qui n'est pas le dernier inséré.

    Ce cas ne depend absolument pas du SGBD, toutes les bases, même MySQL sortiront ce résultat.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Par défaut
    J'ai fais cette requête là, je sais pas vraiment si c'est correct:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT id FROM MATABLE
                WHERE ROWID=(SELECT MAX(ROWID) FROM MATABLE);

  6. #6
    Membre émérite Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Par défaut
    Ce n'est pas correct non plus.
    Si vous supprimez un enregistrement, vous allez laisser un trou dans votre rowid qui sera comblé par le prochain insert, et donc n'aura pas le rowid max.

    Si vous n'avez pas une colonne enregistrant l'insertion de la ligne, ca ne sert à rien de chercher, vous ne pourrez pas récupéré la dernière ligne insérée.

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

Discussions similaires

  1. Récupérer le dernier enregistrement inséré
    Par jockerse dans le forum SQLite
    Réponses: 5
    Dernier message: 03/04/2014, 19h52
  2. Récupérer le dernier enregistrement inséré dans une table
    Par pierre24 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/10/2008, 11h45
  3. Réponses: 5
    Dernier message: 29/12/2005, 07h03
  4. Réponses: 5
    Dernier message: 01/02/2005, 17h29
  5. Récupérer dernier enregistrement d'une table?
    Par Invité dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 19/01/2004, 11h38

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