Comment obtenir la valeur AUTO_INCREMENT actuelle pour une table dans MySQL?
mysql
auto-increment
bparise
la source
la source
Réponses:
Vous pouvez obtenir toutes les données de table en utilisant cette requête:
Vous pouvez obtenir exactement ces informations en utilisant cette requête:
la source
DATABASE()
place du nom de base de données explicite.SELECT MAX(id) FROM table_name
?Je crois que vous recherchez la fonction LAST_INSERT_ID () de MySQL . Si dans la ligne de commande, exécutez simplement ce qui suit:
Vous pouvez également obtenir cette valeur via une requête SELECT:
la source
Si vous voulez simplement connaître le numéro, plutôt que de le récupérer dans une requête, vous pouvez utiliser:
Vous devriez voir l'auto_increment en bas
la source
1
.Même si la réponse de methai est correcte si vous exécutez manuellement la requête, un problème se produit lorsque 2 transactions / connexions simultanées exécutent réellement cette requête au moment de l'exécution en production (par exemple).
Juste essayé manuellement dans MySQL Workbench avec 2 connexions ouvertes simultanément:
Transaction 1:
Transaction 2:
L'insertion de la transaction 1 est correcte: L'insertion de la transaction 2 va par erreur: Code d'erreur: 1062. Entrée en double '21' pour la clé 'PRIMARY'.
Une bonne solution serait la réponse de jvdub car par transaction / connexion les 2 insertions seront:
Transaction 1:
Transaction 2:
Mais nous devons exécuter la last_insert_id () juste après l'insertion! Et nous pouvons réutiliser cet identifiant pour être inséré dans d'autres tables où une clé étrangère est attendue!
De plus, nous ne pouvons pas exécuter les 2 requêtes comme suit:
car nous sommes réellement intéressés à récupérer / réutiliser cet ID dans une autre table ou à revenir!
la source
last_insert_id()
AUTO_INCREMENT
valeur.exemple de code exécutable mysqli:
la source
Si la colonne est auto-incrémentée dans le serveur SQL, alors pour voir la valeur auto-incrémentée actuelle, et si vous souhaitez modifier cette valeur pour cette colonne, utilisez la requête suivante.
la source
Requête pour vérifier le pourcentage "d'utilisation" de AUTO_INCREMENT pour toutes les tables d'un schéma donné (sauf les colonnes de type bigint non signées ):
la source
Je cherchais la même chose et j'ai fini par créer une méthode statique à l'intérieur d'une classe Helper (dans mon cas, je l'ai nommée App \ Helpers \ Database).
La méthode
Pour appeler la méthode et obtenir le MySql AUTO_INCREMENT, utilisez simplement ce qui suit:
J'espère que ça aide.
la source