Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Débuter
Débuter Forum d'entraide pour débuter avec Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/06/2011, 10h09   #1
Invité régulier
 
faycal elgharbi
Inscription : octobre 2009
Messages : 21
Détails du profil
Informations personnelles :
Nom : faycal elgharbi

Informations forums :
Inscription : octobre 2009
Messages : 21
Points : 5
Points : 5
Par défaut Modification générique de clés primaires

Bonjour à tous,
Tout est dans le titre...
Je cherche à modifier la clé primaire d'une table (qui est composée de trois champs) pour lui en rajouter un 4éme.
Jusque la pas de soucis, sauf que la table est présente dans plusieurs environnements de développement, et que dans chaque environnement le nom de la contrainte est différent.
Donc le :
Code :
1
2
3
4
5
6
 
ALTER TABLE x
DROP constraint pk / DROP PRIMARY KEY
 
ALTER TABLE x
ADD constraint pk PRIMARY KEY (a, b, c) / ADD PRIMARY KEY (a, b, c);
Ne marche pas trop vu que je n'ai pas le nom de la contrainte.
Je voudrais donc savoir si c'était faisable de maniére générique...

Merci
faycalato est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 10h22   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 432
Points : 10 432
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Effectivement il faudra passer par un peu de PL/SQL.
Vous pouvez récupérer le nom de votre contrainte avec cette requête :
Code :
1
2
3
4
5
SELECT owner, table_name, constraint_name
  FROM sys.all_constraints
 WHERE owner = user
   AND constraint_type = 'P'
   AND table_name = <ma_table>;
__________________
Email : http://scr.im/waldar
Waldar est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 10h53   #3
Invité régulier
 
faycal elgharbi
Inscription : octobre 2009
Messages : 21
Détails du profil
Informations personnelles :
Nom : faycal elgharbi

Informations forums :
Inscription : octobre 2009
Messages : 21
Points : 5
Points : 5
J'ai peut être trouvé en faisant tout simplement drop primary key cascade
Puis ensuite en recréer une nouvelle clé avec le nouveau champ.

J'ai pas besoin du nom de la contrainte...
faycalato est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h55.


 
 
 
 
Partenaires

Hébergement Web