Maison > base de données > tutoriel mysql > le corps du texte

Comment convertir rétroactivement les ID de table existants en incrémentation automatique dans MySQL ?

Mary-Kate Olsen
Libérer: 2024-10-26 14:38:31
original
928 Les gens l'ont consulté

How to Retroactively Convert Existing Table IDs to Auto-Increment in MySQL?

Conversion rétroactive des ID de table existants en incrémentation automatique dans MySQL

Certaines situations de base de données surviennent lorsque les ID générés manuellement sont implémentés dans les tables sans l'auto -fonction d'incrémentation. Dans de tels cas, il est souhaitable de mettre à niveau ces identifiants pour qu'ils s'incrémentent automatiquement afin d'améliorer l'efficacité de la gestion des données. Cet article se penche sur le processus d'ajout rétrospectif de l'incrémentation automatique aux ID de clé primaire.

Solution : Modification de la définition de colonne

Pour transformer une clé primaire en incrémentation automatique champ, MySQL fournit la commande ALTER TABLE avec l'option MODIFY COLUMN. Considérez cet exemple de tableau :

<code class="sql">CREATE TABLE foo (
  id INT NOT NULL,
  PRIMARY KEY (id)
);</code>
Copier après la connexion

Pour incrémenter automatiquement la colonne id, utilisez la commande suivante :

<code class="sql">ALTER TABLE foo MODIFY COLUMN id INT NOT NULL AUTO_INCREMENT;</code>
Copier après la connexion

Vérification et tests

Après avoir exécuté l'instruction de modification, vérifiez les modifications :

<code class="sql">SHOW CREATE TABLE foo;</code>
Copier après la connexion

La sortie doit indiquer que la colonne id a été modifiée en AUTO_INCREMENT.

Pour tester la fonctionnalité, insérez un nouvel enregistrement sans spécifier de valeur pour la colonne id :

<code class="sql">INSERT INTO foo () VALUES ();</code>
Copier après la connexion

La ligne insérée doit automatiquement recevoir un identifiant unique et incrémentiel.

Adressage du code d'erreur 150

Si vous rencontrez le code d'erreur 150 (HY000) pendant le processus de modification, cela indique probablement un conflit avec les contraintes de clé étrangère. Pour résoudre ce problème, reportez-vous aux ressources suivantes pour le dépannage :

  • [Publication de débordement de pile sur l'erreur MySQL 1025 (HY000)](https://stackoverflow.com/questions/16403341/what-does -mysql-error-1025-hy000-error-on-rename-of-foo-errorno-150-mean)
  • [Note de simplicité sur l'erreur MySQL 150 (HY000)](https://www.simplicidade .org/notes/archives/2008/03/mysql_errno_150.html)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!