The Troll's factory

Geekeries & pensées
-->

Connaître / récupérer le prochain ID AUTO_INCREMENT d’une table SQL

Aujourd’hui je vous fais part d’une chose que bien des gens ont cherché sur Internet et que bien des webmasters ont abandonné de trouver… la méthode pour connaître la valeur du prochain ID d’un champ de type AUTO_INCREMENT dans une table SQL.

Attention cependant, cette méthode fonctionne pour une table ne comprenant qu’un seul champs de type auto_increment et pour MySQL. Je vous laisse le soin de tester (et de nous dire ce que ça donne en laissant un petit commentaire ;-) ) et d’adapter pour d’autres situations, celle situation-ci restant la plus courante.

L’astuce est d’appeler la commande SHOW TABLE STATUS.

En effet si vous tapez par exemple cette requête SQL dans PhpMyAdmin, vous verrez apparaître plein d’informations sur toutes les tables de votre base de données courante.

Si vous souhaitez réduire les lignes à une table précise :

SHOW TABLE STATUS
LIKE 'NomDeLaTable'

Vous allez alors voir qu’une colonne est nommée Auto_increment (attention à la majuscule, importante !). Cette colonne contient la prochine valeur que prendra le champs de type auto_increment de cette table. Attention : la PROCHAINE. Si vous souhaitez connaître la dernière valeur prise par l’auto_increment il faut donc soustraire 1. Je rappelle au passage que l’utilisation de la commande MAX() ou d’un SELECT avec un ORDER BY DESC LIMIT 0,1 derrière ne fonctionnera pas car vous avez la possibilité que des lignes de la table aient été supprimées.

Si vous utilisez par exemple PHP et la fonction mysql_fetch_assoc() (ou mysql_fetch_array() pour les non-éclairés ou ceux qui ont besoin des clés numériques & textuelles), vous récupérerez alors dans votre tableau associatif cette valeur dans la clé nommée ‘Auto_increment’.

posté par Troll dans Scripts, astuces, dév. web avec 5 commentaires