Obtenir la prochaine incrément automatique
Je sais que ce n'est pas si compliqué, mais je ne me souviens pas comment faire.
J'ai juste besoin de savoir le prochain incrément automatique.
$result = mysql_query("
SHOW TABLE STATUS LIKE Media
");
$data = mysql_fetch_assoc($result);
$next_increment = $data['Auto_increment'];
...mais je ne vais pas travailler pour moi, ce que je fais mal?
OriginalL'auteur Johan | 2009-09-03
Vous devez vous connecter pour publier un commentaire.
Le nom de la table ont besoin d'être entourées de guillemets simples comme ceci:
'table_name'
De sorte qu'il fonctionne très bien maintenant.
🙂
De longneck ci-dessous: "Si ... vous avez plusieurs utilisateurs [à l'aide de la table] dans le même temps, vous verrez fréquemment obtenir la bonne valeur."
OriginalL'auteur Johan
La requête devrait ressembler à ceci:
OriginalL'auteur Vlad Andersen
Une autre façon, mais lente, est:
La information_schema est surtout utile pour obtenir des données de nombreux programmes.
C'est lent parce que pour les bases de données contenant des milliers (ou des millions) ou des tableaux, les information_schema db devient incroyablement grand. Utiliser au mieux les
SHOW TABLE STATUS LIKE 'tableName'
requête.OriginalL'auteur OIS
Vous pouvez également utiliser cette fonction
OriginalL'auteur Roland
si vous avez besoin de savoir l' prochaine auto_increment, puis c'est à 99% de chances que vous le faites mal. au lieu de l'obtention de la prochaine auto_increment, vous devriez faire la pochette que vous êtes sur le point de le faire, puis utilisez
SELECT LAST_INSERT_ID()
pour obtenir la valeur auto_increment de la plaquette.si vous essayez de deviner le prochain auto_increment de la valeur et que vous avez plusieurs utilisateurs à le faire en même temps, vous verrez fréquemment obtenir la bonne valeur.
alors vous êtes encore en train de faire quelque chose de mal. dans quelles circonstances possibles voudriez-vous faire cela? l'OP veut obtenir la valeur suivante de sorte qu'ils peuvent définir une clé étrangère dans une autre table. c'est une mauvaise idée. l'enregistrement doit être inséré dans ce tableau, puis se rendre à l'auto incrémentation de la valeur qui a été créé, puis insérez la clé étrangère. le faire dans l'autre sens, c'est comme demander comment faire une sauvegarde de votre voiture dans votre garage avant de mettre la clé dans le contact.
Pas au point. Le Point est, que la question était "Comment obtenir la prochaine auto increment" pas "Comment obtenir le dernier id inséré". Donc en gros, si le tableau est vide, et vous voulez savoir le prochain incrément automatique pour créer un timbre titre (exemple: "Stamptitle-22"). Puis dernier id inséré l'habitude de travailler.
C'est toujours la mauvaise approche. Insert pour obtenir l'ID affecté, puis mettre à jour si nécessaire. Mais encore une fois, en essayant de deviner le prochain auto_increment valeur est universellement une mauvaise idée.
OriginalL'auteur longneck