2014-05-02 6 views
0

Im faire un projet dans l'école, où je suis tombé sur un problème avec mes clés primaires composites ..clé primaire composite mySQL

quand im définir mes clés primaires composites, je tape dans les domaines suivants:

ALTER TABLE `Product Shipment` DROP PRIMARY KEY, ADD PRIMARY KEY(Product_code,Shipment_ID) 

mySQL revient avec l'erreur suivante:

# 1832 - ne peut pas changer la colonne 'Shipment_ID': utilisée dans une contrainte de clé étrangère 'Shipment_ID'

Im puis essayer de supprimer ma clé suivante:

alter table `product Shipment` drop constraint `Shipment_ID` 

Où im obtenir une erreur aléatoire,

# 1064 - Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de « contrainte Shipment_ID » à la ligne 1

Im assez nouveau pour cela, et ne semblent obtenir comment je vais le faire de la bonne façon .. : s

L'aide est très appréciée!

+0

Utilisez-vous votre Shipment_ID comme clé étrangère? –

+0

Ne résoudra pas votre problème actuel mais n'utilise pas d'espace dans les noms de table et de colonne – asprin

+0

Vous ne pouvez pas supprimer la clé primaire car elle est utilisée comme référence dans une autre table (clé étrangère) –

Répondre

1

Pour laisser tomber la contrainte de clé étrangère, vous pouvez utiliser les éléments suivants

ALTER TABLE `product Shipment` DROP FOREIGN KEY `Shipment_ID`; 
+1

wow .. qui a fonctionné avec charme !!! merci beaucoup, maintenant je peux bien dormir ce soir: D – Avacay