Réinitialiser l'incrément automatique dans MySQL

Preet Sanghavi 28 mars 2022
Réinitialiser l'incrément automatique dans MySQL

Ce tutoriel présentera comment réinitialiser l’incrémentation automatique dans la table MySQL.

La plupart des entreprises et organisations qui utilisent MySQL doivent insérer simultanément des valeurs dans plusieurs tables. Bien qu’il ne soit pas possible que tous les champs des enregistrements insérés soient non vides, cela peut provoquer des bogues ou générer une erreur au moment de la récupération de ces enregistrements en fonction d’une condition particulière.

Pour résoudre ce problème, MySQL nous assiste avec un champ d’auto-incrémentation. Cela nous aide à ajouter ou à mettre à jour une valeur particulière dans MySQL chaque fois qu’un nouvel enregistrement est inséré. Il est généralement utilisé pour la colonne associée à la clé primaire.

Comme la valeur de cette variable ne cesse d’augmenter, il devient essentiel pour l’analyste d’avoir un contrôle sur la valeur de cette variable. Cela peut être fait avec l’instruction ALTER TABLE.

Essayons de comprendre cela plus en profondeur.

Cependant, nous créons deux tables factices avec lesquelles travailler avant de commencer. Ici, nous créons une table, student_dates_1, avec quelques lignes.

-- create the table student_dates_3
CREATE TABLE student_dates_3(
  stu_id int NOT NULL AUTO_INCREMENT,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_date date,
  primary key(stu_id)
);

Insertion d’entrées dans la table student_dates à l’aide de l’instruction INSERT

La requête précédente crée une table avec le nom student_dates. Maintenant, à l’aide de l’instruction INSERT, essayons d’ajouter des données pour quelques étudiants. Cette opération peut se faire comme suit :

-- insert rows to the table student_dates_3
INSERT INTO student_dates_3(stu_firstName,stu_date) 
 VALUES("Preet",STR_TO_DATE('24-May-2005', '%d-%M-%Y')),
 ("Dhruv",STR_TO_DATE('14-June-2001', '%d-%M-%Y')),
 ("Mathew",STR_TO_DATE('13-December-2020', '%d-%M-%Y')),
 ("Jeet",STR_TO_DATE('14-May-2003', '%d-%M-%Y')),
 ("Steyn",STR_TO_DATE('19-July-2002', '%d-%M-%Y'));

Le code susmentionné entrerait les données de l’étudiant dans la table student_dates.

SELECT * from student_dates_3;

Production :

stu_id	stu_firstName	stu_date
1		Preet			2005-05-24
2		Dhruv			2001-06-14
3		Mathew			2020-12-13
4		Jeet			2003-05-14
5		Steyn			2002-07-19

Réinitialisation de la valeur de AUTO_INCREMENT

Pour mettre à jour la valeur de la variable AUTO_INCREMENT à une valeur particulière, on peut utiliser la syntaxe suivante.

ALTER TABLE name_of_the_table AUTO_INCREMENT = x;

Dans la requête susmentionnée, x représente la valeur mise à jour qui doit être ajoutée dans le tableau indiqué. Cette logique peut être utilisée pour mettre à jour la valeur de la variable pour la table student_dates_3 à l’aide de la requête suivante.

ALTER TABLE student_dates_3 AUTO_INCREMENT = 100;

La clé primaire stu_id est automatiquement mise à jour avec la valeur définie dans la variable AUTO_INCREMENT si nous ajoutons des enregistrements. Insérons maintenant une valeur dans la table student_dates_3.

-- insert rows to the table student_dates_3
INSERT INTO student_dates_3(stu_firstName,stu_date) 
 VALUES("Rutvik",STR_TO_DATE('16-January-2001', '%d-%M-%Y'));

Nous aurons le stu_id pour l’étudiant nommé Rutvik comme 100. Ceci peut être vérifié avec la requête suivante.

SELECT * from student_dates_3;

Production :

stu_id	stu_firstName	stu_date
1		Preet			2005-05-24
2		Dhruv			2001-06-14
3		Mathew			2020-12-13
4		Jeet			2003-05-14
5		Steyn			2002-07-19
6		Rutvik			2001-16-01

Ainsi, à l’aide de l’instruction ALTER TABLE et du mot-clé AUTO_INCREMENT, nous pouvons mettre à jour efficacement la valeur du champ AUTO_INCREMENT pour mettre à jour automatiquement les valeurs des enregistrements dans la colonne associée à la clé primaire.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub