Modifier clé primaire sur une table [Sybase] - SQL/NoSQL - Programmation
Marsh Posté le 05-10-2006 à 19:41:36
hmmm... essaie ça :
create table region_tmp as select * from region2;
drop table region2;
"rename" table region_tmp region2; -- "rename" est différent d'un SGBD à l'autre du coup faut que tu trouves la bonne syntaxe (au pire, tu recopie à nouveau)
au final, tu auras ta table avec tes données d'origine, et sans clé. tu pourras donc créer une pk sur tes champs.
ps : force le champ district à une valeur avant de créer la PK, car les PK ne supportent pas à ma connaisance les valeurs NULL. (au contraire des contraintes uniques)
Marsh Posté le 05-10-2006 à 17:19:26
Bonjour tout le monde,
J'ai à ma disposition une bdd Sybase, et j'ai l'impression d'avoir une veille version puisque je n'arrive pas à tout faire.
Je crée une table Région :
Je souhaite dans cette table que le triplet (country,province,city) n'apparaisse qu'une seule fois, donc j'ai mis ces champs dans la clé primaire (c'est p-e la meilleure solution d'ailleurs ?)
Ensuite, je pense que l'évolutivité de la table... Alors je décide d'ajouter un champ "district" (varchar) à la fin de la table. Je souhaiterai ajouter le champ district à la clé primaire mais je n'y arrive pas :-(
J'essaye ca :
ALTER TABLE Region2 ADD primary key (country,province,city,district)
Il me dit que je peux avoir qu'une seule clé primaire bien sur.
Alors, pour enlèver la clé :
ALTER TABLE Region2 DROP primary key (country,province,city)
Mais cela plante :
"Incorrect syntax near the keyword 'primary'."
J'ai aussi tenté en utilisant des regroupements de champs "UNIQUE" et cela ne fonctionne pas.
Quelqu'un de génial pourrait il m'aider ?
---------------
Quelque soit la taille de l' éléphant , il arrivera toujours à remplir une marmite avec ses couilles