Code : Tout sélectionner
SELECT MAX(id)
FROM table
WHERE champ <> '';
Ca résoud mon problème. Merci.SI tu sais que ce sont des lignes vides et que tu veux le dernier identifiant de la ligne où il y a des valeurs, ça peut se faire avec une requête du genre :En clair, tu demandes le dernier identifiant dans la table où la valeur du champ est différente de "vide".Code : Tout sélectionner
SELECT MAX(id) FROM table WHERE champ <> '';
et ça t'en as rien à faire....Par définition un auto incrément est une valeur attribuée par le serveur de base de donnée pour indentifier un enregistrement sans équivoque.
Cela ne pose donc pas de problème, si il y a des "trous" dans la suite de valeurs, tant qu'une valeur n'est pas utilisée plus d'une fois.
Il est donc fortement déconseillé de "revenir" en arrière dans les affectation d'un auto-incrément.
Code : Tout sélectionner
DELETE FROM t1 WHERE condition;Code : Tout sélectionner
ALTER TABLE t1 DROP nom_colonne;Code : Tout sélectionner
ALTER TABLE t1 ADD nom_colonne INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (nom_colonne);
Code : Tout sélectionner
SHOW TABLE STATUS LIKE 'nom_table';Code : Tout sélectionner
SELECT auto_increment FROM information_schema.tables
WHERE table_schema = 'nom_base' AND table_name = 'nom_table';