Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1624 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Sybase] Modifier clé primaire sur une table

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Sybase] Modifier clé primaire sur une table

n°1452940
laurent77
La réussite vient en couchant
Posté le 05-10-2006 à 17:19:26  profilanswer
 

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 :  
 

Code :
  1. CREATE TABLE Region2 (
  2.   id NUMERIC IDENTITY NOT NULL,
  3.   country VARCHAR(50) NOT NULL,
  4.   province VARCHAR(50) NOT NULL,
  5.   city VARCHAR(50) NOT NULL,
  6.   primary key(country,province,city)
  7. )


 
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
mood
Publicité
Posté le 05-10-2006 à 17:19:26  profilanswer
 

n°1453042
MagicBuzz
Posté le 05-10-2006 à 19:41:36  profilanswer
 

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)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Sybase] Modifier clé primaire sur une table

 

Sujets relatifs
jointure double sur une meme tableModifier plusieurs pages html à la volée via "rechercher/remplacer"
[Debutant][Mysql]copie de champs d'une table à une autre[MySQL] Modifier 1 ou plusieurs caractères dans une bd?
webtemplate Flash à modifierTable mysql pour un album photo
J'aimerais modifier légérement cette fonction PHP, un peu d'aide svpModifier extension fichiers dans arborescence
Sybase, Auto increment 
Plus de sujets relatifs à : [Sybase] Modifier clé primaire sur une table


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR