Récupérer la derniere valeur d'un champ id.

noviceHTML Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
 java4ever -
Bonjour,
Je souhaiterais récupérer la dernière valeur d'un champ id d'une table qui ne possède pas d'auto-increment. Quelqu'un connaitrait il une requête pratique qui permettrait cela ?
Merci d'avance pour vos réponses détaillées.


A voir également:

4 réponses

Meoran Messages postés 1562 Date d'inscription   Statut Membre Dernière intervention   207
 
Si le champ est toujours incrémenté et jamais décrémenté, tu peux utiliser la fonction SQL MAX().

Parce que lastval() est fait pour répondre exactement à ta demande, mais ça m'étonnerait que cela marche sur un champ non autoincrement :/
0
noviceHTML Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
J'utilise Wamp server 5
0
Meoran Messages postés 1562 Date d'inscription   Statut Membre Dernière intervention   207
 
Et alors ? Ca ne change rien...
0
noviceHTML Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
J'en sais rien moi je suis novice, je précise pour vous donner un max d'informations. Plus vous en savez plus il vous est facile de répondre.
0
java4ever
 
Bonjour,
Comme tu le dis, plus il y a d'infos, plus on a de chance de trouver, donc :

Si tu as vu que l'ID en question n'est pas auto-incrément, c'est qu'il y a une autre méthode pour garantir qu'il est unique :
ça pourrait être une séquence, mais comme tu utilise Mysql (avec wamp),
il ne peut s'agir d'une vraie sequece comme sous Oracle.

Par contre, il pourrait y avoir une table qui sert à fabriquer des pseudo-séquences : c'est souvent une table qui contient une liste de nom de table avec pour chacune le dernier ID utilisé (parfois le prochain à prendre, mais plus rarement)
Pour le savoir, il faut soit regarder si ta table a des triggers (sur insert) qui contiendrait du code pour récupérer cet id ou le code (php, java ou autre) qui a inséré les lignes dans ta table, si c'est une application qui a créé ces lignes.

La dernière option serait que ce soit toi qui ais créé la table, et dans ce cas tu peux te permettre d'utiliser le Max() à condition de toujours insérer avec MAX() + 1
Mais dans ce cas pourquoi ne pas utiliser l'auto-increment ?
En espérant que cela t'aide
0