Ne pouvez pas ajouter de type AUTO_INCREMENT sur colonne existante en raison de clé étrangère
J'ai la colonne de clé primaire, qui a une certaine externe, clé étrangère références. Très habituel. J'ai oublié d'ajouter AUTO_INCREMENT. Maintenant, je exécuter
ALTER TABLE chat.users
CHANGE COLUMN user_id user_id INT(11) NOT NULL AUTO_INCREMENT ;
(CLÉ PRIMAIRE a été définie séparément)
il dit quelque chose à propos de fk
ERROR 1833: Cannot change column 'user_id': used in a foreign key constraint 'fk_chats_users' of table 'chat.chats'
Je ne peux pas comprendre pourquoi fk peine quelque chose de référence de l'AUTO_INCREMENT.
OriginalL'auteur user3537411 | 2015-03-26
Vous devez vous connecter pour publier un commentaire.
La raison pour laquelle le FK ne se soucie de vos changements est parce que vous tentez de le modifier et est utilisé dans une contrainte, n'oubliez pas que vous êtes en mesure de modifier le type de données.
Donc, si vous voulez faire le changement à la FK, vérifiez cette réponse (n'oubliez pas de verrouiller les tables avant que si vous faites le changement dans un environnement de production).
Exactement, c'est la façon de vous assurer de ne pas violer l'intégrité référentielle. Vous êtes les bienvenus!
OriginalL'auteur Leandro Carracedo
Si vous avez la clé primaire définie sur votre colonne puis je ne pense pas qu'il y est besoin de modifier votre colonne et ajouter auto_increment. Les clés primaires sont auto incrémenté par défaut.
Toutefois, si vous souhaitez définir le type auto_increment fonctionnalité sur elle, puis essayez comme ceci:
Et si j'ajoute un 0 comme valeur par défaut explicitement, il va me dire "Code d'Erreur: 1062. Duplicate entry '0' for key 'PRIMARY' " après le deuxième essai.
SHOW CREATE TABLE
pour chaque table. Sans cela, nous sommes deviner.OriginalL'auteur Rahul Tripathi