Id auto incrementé

Fermé
Jule - 10 août 2009 à 09:42
 Radical - 10 août 2009 à 10:29
Bonjour,

J'ai besoin de votre aide sur les id auto-incrementés, en effet je voudrais trouver un moyen de connaitre quel sera l'id de la prochaine ligne que je créerais dans ma bdd.

Car avec mysql_num_rows si certaines lignes sont supprimées la réponse sera faussée.

Merci.
A voir également:

8 réponses

giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
10 août 2009 à 09:43
bonjour,

select max(id) from matable;
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
10 août 2009 à 09:46
Nonb le max(id) ne marche pas si la dernière ligne a été supprimée !

c'est une base mysql ?
si oui, essayes ca :

SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 'nom_de_table'
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
10 août 2009 à 09:49
Bonjour
OK mais là on génère soi même des "trous".
la question est peut être faut-il conserver par ce biais une trace des id créés puis supprimés ?
0
Radical > giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024
10 août 2009 à 09:52
Bonjour,

Tu peux aussi tu utiliser des séquences et utiliser les directives CURVAL NEXTVAL etc ...
0
en fait c'est très simple :
- ton champ id doit avoir comme propriétés : auto-increment et valeur unique.
ainsi à la prochaine insertion dans la base, la champ id sera automatiquement incrémenté à la prochaine valeur de libre


si tu veux récupérer l'id de cette insertion, il suffit d'utiliser la propriété php "mysql_insert_id "
0
En fait je voudrais plutôt pouvoir trouver l'id de la prochaine entrée que je ferais. Admettons j'ai créé 6 lignes, j'en ai supprimé 2, l'id de ma prochaine ligne sera 7 et je voudrais le savoir avant de l'inserer.

Je suis sous sql serveur.

Merci à tous pour votre aide. J'ai regardé sur php.net et je n'ai pas trouvé de fonction permettant de faire ça.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Essaye de repéré l'id de ta séquence et exécute cette requete ...

SELECT CURRVAL('id_de_ta_seq'');
0
Je n'ai rien dis lol

Tu peux trouver ce que tu as besoin ici

https://dev.mysql.com/doc/refman/8.0/en/information-functions.html

LAST_INSERT_ID()
0
Warning: mssql_query() [function.mssql-query.html]: message: 'NEXTVAL' n'est pas une option nom de fonction intégrée reconnue.

Nextval et currval ne sont pas uniquement disponible chez Oracle?
0
Si jules, un peu trop d'habitude avec les serveurs oracle, mais la contrepartie existe en mysql ...
0
jeangilles Messages postés 816 Date d'inscription samedi 21 juin 2008 Statut Membre Dernière intervention 17 juillet 2012 185
10 août 2009 à 10:23
Tu devrais peut être aller faire un tour par ici :
http://wiki.coolforest.net/index.php?title=Sql_Server_-_R%C3%A9cup%C3%A9rer_last_ID
0