Comment utiliser MySQL Auto-Crament

Comment utiliser MySQL Auto-Crament
L'auto-incrément est un attribut très important de MySQL. Lorsqu'un tableau nécessite un champ numérique qui augmentera automatiquement pour générer un numéro séquentiel, l'attribut automatique est utilisé pour ce champ. Le champ d'accès automatique peut être attribué comme clé principale ou clé unique pour une table si cela nécessite. Ce champ ne peut pas stocker une valeur nulle. Ainsi, lorsque l'attribut automatique d'incrémentation est défini pour n'importe quel champ d'une table, alors non la contrainte nul sera définie automatiquement pour ce champ. Lorsque de nouveaux enregistrements doivent être insérés dans une table qui contient le champ d'auto-incitation, l'utilisateur n'a pas besoin de fournir une valeur pour ce champ. Comment cet attribut fonctionne dans les tables MySQL est indiqué dans cet article.

Caractéristiques du champ d'auto-incrémentation:

  • Le premier enregistrement de ce champ commence toujours à partir de 1 par défaut et incrémenté de 1 lorsqu'un nouvel enregistrement s'insère.
  • Si l'utilisateur spécifie une valeur numérique particulière sans null pour ce champ au moment de l'insertion qui n'est pas dans l'ordre séquentiel, un message d'erreur sera généré par MySQL.
  • Si une valeur de ce champ est mise à jour par une autre valeur qui existe déjà dans le tableau, MySQL générera un message d'erreur.
  • Si l'utilisateur supprime les derniers enregistrements de la table, ce qui sera le nouveau numéro séquentiel dépend du moteur du tableau. La table InNODB ne génère jamais le numéro généré précédemment lorsqu'un nouvel enregistrement insert, mais le tableau Myisam génère le dernier numéro séquentiel qui est supprimé du tableau.
  • Last_insert_id () La fonction est utilisée pour récupérer la valeur du nombre généré dans la dernière insertion.

Syntaxe:

Créer la table de table1
(
Field1 DataType Auto_increment [clé primaire],
Field2 DataType [null | Pas nul],

Fieldn DataType [null | Pas nul],
));

Ici, champ1 est défini comme un champ d'auto-incrémentation et le type de données de ce champ peut être n'importe quel type de données numérique comme Int ou Grand. Il n'est pas obligatoire de définir le champ d'auto-impulsion comme la clé principale. Mais il peut être utilisé comme clé primaire pour créer une relation entre deux tables.

Prérequis:

Exécutez les commandes SQL suivantes pour créer une base de données nommée 'newdb'Et sélectionnez la base de données pour créer des tables avec un attribut automatique.

Créer une base de données newdb;
Utilisez newdb;

Créez une table avec une augmentation automatique:

Exécutez l'instruction Créer suivante pour créer un tableau nommé étudiantsidentifiant Le champ sera créé avec un attribut automatique et défini comme clé principale. Ensuite, deux types d'instructions d'insertion seront exécutées. Dans la première instruction INSERT, aucun nom de champ n'est mentionné dans la requête d'insertion et vous devez fournir toutes les valeurs de champ de la table pour ce type d'insertion. Ici, le null la valeur est utilisée pour identifiant champ. Dans la deuxième instruction INSERT, tous les champs à l'exception du champ d'auto-augmentation sont mentionnés dans la requête d'insertion car il sera généré automatiquement. Ensuite, l'instruction SELECT est exécutée pour afficher le contenu de étudiants tableau.

Créer des étudiants de table (
id int non signé auto_increment,
nom varchar (50) pas null,
Lot SmallInt pas nul,
Semestre SmallInt pas nul,
Clé primaire (ID)
));
Insérer dans les valeurs des étudiants
(Null, «Masrafi», 41, 9);
Insérer dans les valeurs des étudiants (nom, lot, semestre)
('Sakib', 43, 7);
Sélectionner * parmi les étudiants;

Vous pouvez définir manuellement la valeur du champ automatique d'incrémentation, mais vous devez maintenir l'ordre séquentiel. Vous ne pouvez pas définir une valeur inférieure à la dernière valeur insérée ou égale à une valeur existante. La première instruction INSERT suivante fonctionnera correctement car la dernière valeur insérée était de 2. La deuxième instruction d'insertion générera une erreur car la valeur 2 existe déjà dans le tableau.

Insérer dans les valeurs des étudiants
(4, «Robel», 41, 9);
Insérer dans les valeurs des étudiants
(2, «Manzarul», 41, 9);

Créez une table avec une augmentation automatique et un zérofill non signé:

Il a mentionné plus tôt que le champ d'accès automatique commence à partir de 1 par défaut. Mais si vous utilisez l'attribut zérofill non signé avec le champ d'accès automatique et définissez la longueur du nombre, le nombre sera généré avec un zéro leader en fonction de la longueur. L'instruction CREATE suivante créera un tableau nommé enseignants où les attributs de zérofill non signés et non signés sont définis pour tch_id Le champ et la longueur du champ sont réglés sur 4. Ensuite, certaines données seront insérées dans le tableau par instruction INSERT et l'instruction SELECT affichera tout le contenu du tableau.

Créer des professeurs de table (
TCH_ID MIDIDIINT (4) ZEROFILL AUTO_INCRAMENT UNSIGNÉ,
nom varchar (50) pas null,
Département Varchar (10) Pas nul,
Clé primaire (tch_id)
));
Insérer dans les valeurs des enseignants
(Null, «Maria», «CSE»),
(Null, «Janifer», «BBA»),
(Null, «Micheal», «Eng»);
Sélectionner * parmi les enseignants;

Ici, il est démontré que 0001, 0002 et 0003 sont générés sous forme de valeurs tch_id.

Maintenant, si vous supprimez le dernier enregistrement et insérez un nouvel enregistrement, un nouveau nombre de plus la valeur TCH_ID supprimée sera générée comme nouveau tch_id.

Supprimer des enseignants où tch_id = 3;
Insérer dans les valeurs des enseignants
(Null, «Mahmuda», «CSE»);
Sélectionner * parmi les enseignants;

Réinitialisation du champ d'accès automatique:

Si tous les enregistrements sont supprimés du enseignants table qui contient le champ d'auto-incrémentation puis le nouveau Valeur de Tch_id sera généré après la dernière valeur insérée. Après avoir exécuté les instructions SQL suivantes, il sera démontré que le nouvellement généré tch_id est 0005 Parce que la dernière valeur insérée était 0004.

Supprimer des enseignants;
Insérer dans les valeurs des enseignants
(Null, «Lucy», «Eee»);
Sélectionner * parmi les enseignants;

Si vous souhaitez réinitialiser le tableau et recommencer la valeur à partir de 1, vous devez exécuter une instruction tronquée au lieu de l'instruction Delete. Ceci est montré dans les trois déclarations suivantes.

Enseignants de table tronqués;
Insérer dans les valeurs des enseignants
(Null, «Lucy», «Eee»);
Sélectionner * parmi les enseignants;

Vous obtiendrez la sortie suivante après avoir exécuté les instructions.

Si vous souhaitez modifier la valeur par défaut des champs d'auto-incrémentation, vous devez exécuter l'instruction alter avec le démarrage de la valeur d'accès automatique. Ensuite, insérez un enregistrement et vérifiez la valeur du champ d'auto-incitation. Ici, la valeur de départ sera définie sur 15.

Enseignants de table tronqués;
Alter Table Teachers Auto_Increment = 15;
Insérer dans les valeurs des enseignants
(Null, «Lucy», «Eee»);
Sélectionner * parmi les enseignants;

La sortie suivante apparaîtra après avoir exécuté les instructions SQL ci-dessus.

Conclusion:

Les objectifs de l'attribut automatique sont expliqués correctement en utilisant des exemples de tables dans cet article pour aider l'utilisateur MySQL à comprendre les utilisations de cet attribut.