Changer la clé primaire en incrémentation automatique
J'ai une table de joueurs, et une clé primaire playerID qui est de caractère(7). J'ai quelques enregistrements dans cette table déjà, et aussi quelques autres tables qui a playerID comme une clé étrangère, et ces tables ont aussi quelques enregistrements déjà.
Comment puis-je régler l'playerID à l'auto-incrément? Après la lecture pour un moment je pense que j'aurais dû faire ça depuis le début, mais depuis je ne peux pas le faire maintenant, est-il de toute façon je peux le faire?
Par exemple, lorsque j'exécute ce
ALTER TABLE player ADD COLUMN key_column BIGSERIAL PRIMARY KEY;
il retourne une erreur:
ERROR: multiple primary keys for table "player" are not allowed
et si je baisse l'existant playerID, les enregistrements dans d'autres tables de référence, il sera abandonné.
Est-il un moyen de "changer" l'existant clé primaire playerID pour auto-incrément?
source d'informationauteur Chin
Vous devez vous connecter pour publier un commentaire.
Je l'ai trouver: il suffit d'ajouter un auto-incrément valeur par défaut à la playerID:
De sortie:
Je ne pense pas que vous pouvez avoir 2 clés primaires dans une table, et parce que playerID des données de type caractère(7) je ne pense pas que vous pouvez la changer en auto increment.
Donc, je crois que vous devez supprimer la contrainte de clé primaire sur playerID, si vous voulez être en mesure d'ajouter une nouvelle clé primaire.
Puisque vous avez déjà des données sur votre table et que vous utilisez playerID comme une clé étrangère dans d'autres tableaux, je vous conseille de dupliquer votre table de joueur et de tester ces changements sur votre deuxième table pour éviter de corrompre vos données.
Mais avant d'essayer tout cela, assurez-vous que vous essayez de faire cela change à l'aide de la même utilisateur de la base qui a créé les tables vous sont en train de changer