Page 1 sur 1

Prochain id

Posté : 30 mai 2007, 13:34
par Zolmitriptan
Bonjour à tous,

J'aimerais savoir s'il existe une fonction comme mysql_insert_id, mais qui retournerai le prochain ID qui sera inséré dans la table ??

J'ai beau cherché, je trouve pas ...

Merci d'avance

Re: Prochain id

Posté : 30 mai 2007, 14:13
par dunbar
Bonjour à tous,

J'aimerais savoir s'il existe une fonction comme mysql_insert_id, mais qui retournerai le prochain ID qui sera inséré dans la table ??

J'ai beau cherché, je trouve pas ...

Merci d'avance
Et si tu récupère la dernière id à laquelle tu ajoute +1 c'est pas bon ?

Posté : 30 mai 2007, 14:59
par MrPink
Dans le genre :

Code : Tout sélectionner

select id from ma_table order by id desc limit 1;
@+

Posté : 30 mai 2007, 15:00
par Shrell
nan, la méthode du +1 ne marchera pas dans tous les cas
ceci par contre :

Code : Tout sélectionner

SHOW TABLE STATUS FROM mabase LIKE 'monchamp'
te renvoie tout plein d'infos, donc "Auto_increment", qui est la valeur que tu cherches ;)

Posté : 30 mai 2007, 16:40
par Zolmitriptan
Merci à vous, c'est très sympa et ca marche(j'ai essayé :lol: ) , mais j'avais oublié de préciser :
Je voudrais pouvoir le faire sans requêtes, car, c'est bien pour m'eviter une requête supplémentaire que je cherchais ceci.... :roll:

Apparement, après d'autre demande et d'autre recherche, cette fonction miraculeuse n'existerai pas....à moins que ??

Posté : 30 mai 2007, 17:51
par mere-teresa
Heu sans requête ?
Mais c'est le SGBD qui gère les ID, c'est lui qui sait où il en est et qui stocke cette valeur, pour que si tu l'interroges dans 300 ans, il incrémente le champ en auto_increment à la bonne valeur.

Tu ne peux pas d'un côté utiliser l'auto incrémentation et de l'autre ne pas demander cette valeur à la base !

Posté : 30 mai 2007, 18:11
par Zolmitriptan
Oui, oui, je sais bien....mais je me suis basé, sans trop réfléchir ( :oops: honte sur moi) sur mysql_insert_id()....je pensais que "l'inverse" existait.

Tant pis, je me suis débrouillé avec une requête en plus.

Merci à tous !