Récupérer la derniere valeur d'un champ id.
noviceHTML
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
java4ever -
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.
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:
- Récupérer la derniere valeur d'un champ id.
- Dernière version ccleaner gratuit français - Télécharger - Nettoyage
- Comment recuperer un message supprimé sur whatsapp - Guide
- Supprimer dernière page word - Guide
- Dernière version chrome - Accueil - Applications & Logiciels
- Comment récupérer un compte facebook piraté - Guide
4 réponses
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 :/
Parce que lastval() est fait pour répondre exactement à ta demande, mais ça m'étonnerait que cela marche sur un champ non autoincrement :/
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.
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
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