|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() Inscription : avril 2007 Messages : 483 ![]() |
Bonjour,
Tout d'abord désolé si je ne suis pas au bon endroit pour poster, je ne savais pas trop quelle catégorie mon problème touche j'ai donc posté dans le général. Voila je suis en train de créer un petit module supplémentaire à une appli que j'avais développé, et j'ai besoin d'ajouter une table. Cependant la clé primaire de la table à laquelle je dois la lier ne me convient pas, elle est construite sur trois champs, je voudrais la réduire pour qu'elle ne soit plus que sur un champ (juste le champ id). J'ai essayé des trucs du genre Code :
ALTER TABLE ma_table MODIFY PRIMARY KEY(Id); Est-ce possible directement ou bien dois-je passer par la suppression de la contrainte pour la recréer ensuite ? (comment faire dans le deuxième cas ? car je ne trouve pas non plus la syntaxe exacte) Merci d'avance pour votre aide |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : avril 2007 Messages : 483 ![]() |
j'ai fait :
et ensuite : Code :
ALTER TABLE matable ADD CONTRAINT nomcontrainte PRIMARY KEY(id); |
|
|
00
|
|
|
#3 | ||
![]() ![]() |
Une petite précision toutefois, lors de la génération d'une clef primaire Oracle constituera obligatoirement un index associé.
Si aucun paramètre n'est défini, cet index ira se loger dans le tablespace par défaut, ce qui n'est pas toujours opportun. Vous pouvez utiliser le code suivant pour le diriger au bon endroit : Code :
|
||
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 497 ![]() |
Citation:
__________________
La théorie, c'est quand on sait tout mais que rien ne fonctionne. La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi ! Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/ |
|
|
|
00
|
|
|
#5 | |||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 320 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
Effectivement, j'ai constaté ça aussi.
C'est à la création de la table que l'index de la clef primaire est créé, d'après mon test en 10g... Mince alors... Code :
__________________
les règles du forum - mode d'emploi du forum Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) JE NE RÉPONDS PAS aux questions techniques par message privé. Écrire en français sur un forum est une marque minimale de respect. |
||
|
|
00
|
|
|
#7 | |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
Une clé primaire a obligatoirement besoin d'un index.
Lors de l'ajout d'une clé primaire sur une table qui possède déjà un index sont les caractéristiques correspondent à celles requises par une clé primaire (valeur unique + même colonne), pourquoi Oracle irait récréer un nouvel index et donc gaspiller de la place pour rien et faire deux fois le boulot de vérification à chaque DML référençant la clé ? Donc, pour peaufiner ce que dit Waldar, je dirais plutôt : Citation:
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 320 ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#9 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
belle paraphrase ! ...
Mais c'est effectivement un bonne idée que de lire les docs....
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
Copyright © 2000-2012 - www.developpez.com