Maison > base de données > tutoriel mysql > Comment supprimer les clés primaires composites dans MySQL tout en conservant une colonne à incrémentation automatique ?

Comment supprimer les clés primaires composites dans MySQL tout en conservant une colonne à incrémentation automatique ?

Susan Sarandon
Libérer: 2024-12-31 03:28:10
original
408 Les gens l'ont consulté

How to Remove Composite Primary Keys in MySQL While Keeping an Auto-Increment Column?

Suppression de la clé primaire de plusieurs colonnes dans MySQL

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 :

  1. Supprimez la propriété d'auto-incrémentation de l'id colonne :

    ALTER TABLE user_customer_permission MODIFY id INT NOT NULL;
    Copier après la connexion
  2. Supprimez la clé primaire :

    ALTER TABLE user_customer_permission DROP PRIMARY KEY;
    Copier après la connexion

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;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal