J'ai une table préexistante contenant 'fname', 'lname', 'email', 'password' et 'ip'. Mais maintenant, je veux une colonne à incrémentation automatique. Cependant, quand j'entre:
ALTER TABLE users
ADD id int NOT NULL AUTO_INCREMENT
Je reçois ce qui suit:
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Aucun conseil?:)
Essaye ça
ALTER TABLE `users` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
Si vous ne vous souciez pas de savoir si l'identifiant automatique est utilisé comme PRIMARY KEY
, vous pouvez simplement le faire.
ALTER TABLE `myTable` ADD COLUMN `id` INT AUTO_INCREMENT UNIQUE FIRST;
Je viens de faire cela et cela a fonctionné un régal.
Si vous souhaitez ajouter AUTO INCREMENT dans une table existante, vous devez exécuter la commande SQL suivante:
ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT primary key
Vous devez d'abord supprimer la clé primaire de la table
ALTER TABLE nametable DROP PRIMARY KEY
et maintenant vous pouvez ajouter l'autocrément ...
ALTER TABLE nametable ADD id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
Eh bien, vous devez d'abord supprimer les auto_increment
et primary key
que vous avez puis ajouter le vôtre, comme suit:
-- drop auto_increment capability
alter table `users` modify column id INT NOT NULL;
-- in one line, drop primary key and rebuild one
alter table `users` drop primary key, add primary key(id);
-- re add the auto_increment capability, last value is remembered
alter table `users` modify column id INT NOT NULL AUTO_INCREMENT;
Supprimez la clé primaire d'une table si elle existe:
ALTER TABLE `tableName` DROP PRIMARY KEY;
Ajouter une colonne à incrémentation automatique à une table:
ALTER TABLE `tableName` ADD `Column_name` INT PRIMARY KEY AUTO_INCREMENT;
Modifiez la colonne que nous voulons considérer comme clé primaire:
alter table `tableName` modify column `Column_name` INT NOT NULL AUTO_INCREMENT PRIMARY KEY;
Il suffit de changer le AJOUTER à MODIFIER et cela fonctionnera!
Remplacer
ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT
À
ALTER TABLE users MODIFY id int NOT NULL AUTO_INCREMENT;
ALTER TABLE users CHANGE id int( 30 ) NOT NULL AUTO_INCREMENT
le paramètre entier est basé sur mon paramètre SQL par défaut passez une bonne journée
Si vous exécutez la commande suivante:
ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT PRIMARY KEY;
Cela va vous montrer l'erreur:
ERROR 1060 (42S21): Duplicate column name 'id'
En effet, cette commande essaiera d’ajouter la nouvelle colonne nommée id
à la table existante.
Pour modifier la colonne existante, vous devez utiliser la commande suivante:
ALTER TABLE users MODIFY id int NOT NULL AUTO_INCREMENT PRIMARY KEY;
Cela devrait fonctionner pour changer la contrainte de colonne existante ....!
ALTER TABLE users ADD id int NOT NULL AUTO_INCREMENT primary key FIRST
Recherchez les clés primaires déjà existantes avec une colonne différente. Si oui, supprimez la clé primaire en utilisant:
ALTER TABLE Table1
DROP CONSTRAINT PK_Table1_Col1
GO
puis écrivez votre requête telle qu'elle est.
ALTER TABLE `table` ADD `id` INT NOT NULL AUTO_INCREMENT unique
Essaye ça. Pas besoin de laisser tomber votre clé primaire.