Qu’est-ce que AUTO_INCREMENT MySQL ?
Principes de AUTO_INCREMENT
Dans MySQL, AUTO_INCREMENT est une fonctionnalité qui incrémente automatiquement les valeurs numériques dans une table de base de données. Elle est couramment utilisée comme clé primaire (PRIMARY KEY), permettant d’attribuer automatiquement des numéros séquentiels chaque fois qu’une nouvelle ligne est insérée—sans spécifier manuellement l’ID.
Principales utilisations de AUTO_INCREMENT
- Génération automatique d’ID de membre : attribue un ID unique lorsqu’un utilisateur s’inscrit
- Gestion des numéros de commande : attribue automatiquement un numéro à chaque commande
- Attribution de code produit : utilisé comme identifiant unique pour les produits
En utilisant correctement AUTO_INCREMENT, vous pouvez garantir l’unicité des données tout en réduisant la charge administrative.
Comment vérifier la valeur AUTO_INCREMENT dans MySQL [3 SQL Commands]
Méthode 1 : Utiliser SHOW TABLE STATUS
SHOW TABLE STATUS LIKE 'table_name';
Lorsque vous exécutez cette commande, la valeur actuelle de AUTO_INCREMENT est affichée dans la colonne Auto_increment.
Méthode 2 : Récupérer depuis INFORMATION_SCHEMA.TABLES
SELECT AUTO_INCREMENT FROM information_schema.tables
WHERE table_schema = 'database_name' AND table_name = 'table_name';
Cette méthode vous permet de récupérer directement la valeur AUTO_INCREMENT définie pour la table cible.
Méthode 3 : Utiliser SHOW CREATE TABLE
SHOW CREATE TABLE table_name;
Lorsque vous exécutez cette commande, le DDL (Data Definition Language) de création de la table est affiché, incluant le paramètre AUTO_INCREMENT.

Comment définir et modifier AUTO_INCREMENT
Définir AUTO_INCREMENT lors de la création d’une nouvelle table
Pour définir une colonne avec AUTO_INCREMENT lors de la création d’une nouvelle table, utilisez le SQL suivant :
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255)
);
Modifier la valeur AUTO_INCREMENT d’une table existante
Si vous souhaitez modifier la valeur AUTO_INCREMENT d’une table existante, utilisez la commande suivante :
ALTER TABLE users AUTO_INCREMENT = 1000;
Après l’exécution de cette commande, le prochain enregistrement inséré commencera avec l’ID 1000.
Modifier la valeur d’incrémentation AUTO_INCREMENT (MySQL 8.0 ou supérieur)
Par défaut, la valeur AUTO_INCREMENT augmente de 1. Cependant, vous pouvez changer la valeur d’incrémentation si nécessaire.
SET @@auto_increment_increment = 5;
Avec ce réglage, la valeur AUTO_INCREMENT augmente de 5 à chaque fois (par ex., 1, 6, 11, …).
Notes importantes lors de l’utilisation d’AUTO_INCREMENT [Prevent Data Issues]
Limite maximale de la valeur AUTO_INCREMENT
La valeur maximale de AUTO_INCREMENT dépend du type de données de la colonne. Par exemple, avec le type INT, la valeur maximale est 2 147 483 647. Si cette limite est dépassée, de nouveaux ID ne peuvent plus être générés, ce qui entraîne une erreur.
Solutions
- Utiliser
BIGINTpour prendre en charge des valeurs beaucoup plus grandes - Envisager l’archivage des données ou la réinitialisation lorsque cela est nécessaire
Comportement d’AUTO_INCREMENT après la suppression de données
Dans MySQL, la suppression d’enregistrements ne réinitialise pas automatiquement la valeur AUTO_INCREMENT.
DELETE FROM users WHERE id = 100;
Même si un ID spécifique est supprimé de cette manière, la prochaine valeur insérée continue à partir du compteur actuel sans réutilisation.
Comment réinitialiser
Utiliser TRUNCATE TABLE supprime toutes les données et réinitialise la valeur AUTO_INCREMENT.
TRUNCATE TABLE users;
Après cette opération, le prochain ID inséré recommencera à 1.
Transactions et AUTO_INCREMENT
Dans MySQL, la valeur AUTO_INCREMENT ne revient pas en arrière même si une transaction est annulée (ROLLBACK).
START TRANSACTION;
INSERT INTO users (name) VALUES ('Alice');
ROLLBACK;
Dans ce cas, les données ne sont pas insérées, mais la valeur AUTO_INCREMENT reste incrémentée. En conséquence, des écarts dans les numéros d’ID peuvent apparaître.
Foire aux questions (FAQ)
Q1 : Pourquoi les valeurs AUTO_INCREMENT présentent-elles parfois des écarts ?
A: Parce que les numéros ne sont pas réinitialisés après un INSERT suivi d’un ROLLBACK. Les suppressions et les insertions échouées peuvent également créer des lacunes.
Q2: Comment réinitialiser la valeur AUTO_INCREMENT ?
A: Exécutez TRUNCATE TABLE table_name; pour le réinitialiser.
Q3: Comment vérifier la valeur actuelle d’AUTO_INCREMENT ?
A: Utilisez SHOW TABLE STATUS ou interrogez INFORMATION_SCHEMA.TABLES.
Q4: Que se passe-t-il si AUTO_INCREMENT dépasse sa valeur maximale ?
A: Si elle dépasse la valeur maximale de INT, une erreur se produira. Vous devez changer le type de la colonne en BIGINT.


