Maison >base de données >tutoriel mysql >Comment ajouter un ID à incrémentation automatique à une table avec une clé primaire existante dans MySQL ?

Comment ajouter un ID à incrémentation automatique à une table avec une clé primaire existante dans MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-30 04:17:14695parcourir

How to Add an Auto-Increment ID to a Table with an Existing Primary Key in MySQL?

Ajout d'un ID à incrémentation automatique à une table existante avec clé primaire

Améliorer une table existante avec un ID à incrémentation automatique est une exigence courante dans la gestion de bases de données. Cependant, l'ajout d'une colonne à incrémentation automatique à une table qui possède déjà une clé primaire peut présenter des défis.

Lorsque vous essayez d'ajouter une colonne à incrémentation automatique à l'aide de l'instruction :

ALTER TABLE users
ADD id int NOT NULL AUTO_INCREMENT

vous pouvez rencontrer l'erreur :

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

Cela est dû au fait que MySQL n'autorise qu'une seule colonne à incrémentation automatique par table, et elle doit être désignée comme colonne principale key.

Pour résoudre ce problème, vous devez d'abord modifier la clé primaire existante pour autoriser l'auto-incrémentation, puis ajouter la nouvelle colonne d'auto-incrémentation. Voici un exemple :

ALTER TABLE `users`
MODIFY COLUMN `id` INT NOT NULL AUTO_INCREMENT,
ADD COLUMN `name` VARCHAR(255) NOT NULL

En exécutant cette requête, vous modifiez la colonne id existante pour qu'elle s'incrémente automatiquement et ajoutez une nouvelle colonne de nom à la table. La colonne id servira désormais à la fois de clé primaire et d'ID d'incrémentation automatique.

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!

Déclaration:
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