Maison >base de données >tutoriel mysql >Comment supprimer les clés primaires composites dans MySQL tout en conservant une colonne à incrémentation automatique ?
Question :
Comment puis-je supprimer les clés primaires de user_customer_id et permission_id tout en conservant la clé primaire pour id dans la table user_customer_permission, malgré une erreur lors de l'utilisation de l'option "alter table user_customer_permission drop Primary Key" ?
Explication :
MySQL exige qu'une colonne d'auto-incrémentation fasse partie de l'index le plus à gauche. Dans ce cas, la colonne id est auto-incrémentée, donc supprimer la clé primaire de id violerait cette exigence.
Solution :
Pour supprimer avec succès les clés primaires de user_customer_id et permission_id, suivez ces étapes :
Supprimez la propriété d'auto-incrémentation de l'id colonne :
ALTER TABLE user_customer_permission MODIFY id INT NOT NULL;
Supprimez la clé primaire :
ALTER TABLE user_customer_permission DROP PRIMARY KEY;
Remarque : Il est important de noter que la table avait auparavant une CLÉ PRIMAIRE composite couvrant les trois colonnes (id, user_customer_id, permission_id). Pour garantir l'unicité de la colonne id, vous pouvez en faire à nouveau la clé primaire avec incrémentation automatique :
ALTER TABLE user_customer_permission MODIFY id INT NOT NULL PRIMARY KEY AUTO_INCREMENT;
En suivant ces étapes, vous pouvez supprimer avec succès les clés primaires de user_customer_id et permission_id tout en conservant la clé primaire. pour pièce d'identité.
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!