begin process at 2012 05 29 01:52:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Base de données

 > 

Autre

 > 

Comment créer un clé primaire sous oracle 10g


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment créer un clé primaire sous oracle 10g

mardi 13 avril 2010 à 23:52:12 | Comment créer un clé primaire sous oracle 10g

ahmed2006jeday

je suis débutant en oracle 10g je le maitrise pas bien en plus c'est mon première contact avec ce programme.j'aime bien connaitre comment je peux faire un clé primaire et étrangère sous oracle 10g
lundi 26 juillet 2010 à 17:30:31 | Re : Comment créer un clé primaire sous oracle 10g

exar

Membre Club
clé primaire:

alter table nom_de_ta_table
add constraint nom_de_la_pk
primary key (liste_de_tes_champs_séparés_par_des_virgules);

clé étrangère:

alter table nom_table_détail
add constraint nom_de_la_fk
foreign key (liste_de_tes_champs_de_fk_séparés_par_des_virgules)
references nom_de_la_table_maître(liste_des_champs_de_la_pk_de_la_table_maître_séparés_par_des_virgules);

Alors, un exemple... Disons, que je veux lier des villes à leur pays. J'ai donc une table ville, et une table pays.
Disons que j'utilise des clés techniques (number incrémenté par trigger before insert) et des clés uniques. Pour la ville, la clé unique pourrait être code_postal et nom_ville, par exemple, pour pays, le nom du pays.
Donc, mes tables ressembleraient à cela:
ville(
id_ville number not null,
code_postal varchar2(15) not null, -- dans certains pys, il y a des lettres dans le cp
nom_ville varchar2(25) not null,
id_pays number not null);
pays(
id_pays number not null,
nom_pays varchar2(25) not null)

Ensuite, voilà ce qu'il faut faire:
1. créer tes PK:
Code :
alter table pays
add constraint pays_pk
primary key(id_pays);

alter table ville
add constraint ville_pk
primary key(id_ville);


2. créer les clés uniques:

Code :
alter table pays
add constraint pays_uk
unique (nom_pays);

alter table ville
add constraint ville_uk
unique(code_postal, nom_ville);


3. créer ta clé étrangère:

Code :
alter table ville
add constraint ville_pays_fk
foreign key (id_pays)
references pays(id_pays);


Comme je disais, il est entendu que id_pays et id_ville sont remplis par trigger avec des séquences.
Ce que je ferais aussi, c'est créer un index sur id_pays de la table ville.
Autre conseil: crée un tablespace rien que pour tes indexes. Tu peux alors l'utiliser directement lors de la création des indexes et clés uniques et primaires.
Exemple:

imaginons que ton tablespace d'indexes s'appelle tbs_indexes.

Code :
alter table ville
add constraint ville_pk
primary key (id_ville)
using index tablespace tbs_indexes;


Enfin, on peut s'étendre encore beaucoup sur le sujet, car tu peux, entre autres, également utiliser le partitionning, ce qui est intéressant sur des tables +/- statiques qui contiennent beaucoup de données.

Bon courage !
vendredi 20 avril 2012 à 19:34:03 | Re : Comment créer un clé primaire sous oracle 10g

Hfatma

je veux créer des table avec oracle 10g mais j'ai un problème avec une table dont il y a 3 clés primaire, j'arrive pas à la créer.
je vais vous donnés tous les table pour mieux comprendre et j’attend votre repense.

Ouvrier (num_ouv , nom_ouv, prenom_ouv, adr_ouv, cp_ouv, ville)
Piéce (ref_piece , libelle, prix)
Machine (ref_mac , type_mac, marque, num_at#)
Atelier (num_at , nom at)
Ensemble (code ens , libelle)
Composition (ref_piece# , code_ens#, Qte)
Production (num_ouv#, ref_piece#, ref_mac#, Date_fab, Qte_prod)
Stock (ref_piece#, code_ens#, Qte_stock)

samedi 21 avril 2012 à 12:55:04 | Re : Comment créer un clé primaire sous oracle 10g

exar

Membre Club
Bonjour,

Je suppose que tu parles de la table Production. Je crois que ton analyse a un petit problème, parce que ta clé primaire n'est pas complète. En effet, tu ne pourras fabriquer qu'une seule fois une pièce sur une machine. Tu dois donc ajouter la date (avec précision de l'heure).
Voici comment créer cette table:

Code :
create table Production(
num_ouv number not null,
ref_piece number not null,
ref_mac number not null,
date_fab date not null,
qte_prod number not null);

alter table Production
add constraint Production_pk
primary key (num_ouv, ref_piece, ref_mac, date_fab);


Bien sûr, tu dois encore créer aussi tes foreign keys.

J'espère que ça répond à ta question.

Bonne continuation !
samedi 21 avril 2012 à 23:50:09 | Re : Comment créer un clé primaire sous oracle 10g

Hfatma

Merci bien :)
dimanche 22 avril 2012 à 13:07:09 | Re : Comment créer un clé primaire sous oracle 10g

exar

Membre Club
De rien ! J'espère que ça t'a aidé. Juste une précision: tu n'as pas sur ta table Production quatre clés primaires, mais une seule composée de quatre champs. Tu ne peux avoir qu'une seule clé primaire sur une table. D'ailleurs, si tu tentes d'en ajouter une seconde à une table qui en possède déjà une, Oracle te le dit.
Bon courage pour la suite !
mardi 24 avril 2012 à 01:03:32 | Re : Comment créer un clé primaire sous oracle 10g

Hfatma

salut
svp pour la meme base je veux créer une interface en VB.NET
Gestion des fenêtres :
- Fenêtre d’authentification
- Fenêtre principale
-Ajout
-Modification
-Suppression
-Recherche
si possible je veux un exemple
et merci d'avance


Cette discussion est classée dans : créer, oracle, clé, primaire, 10g


Répondre à ce message

Sujets en rapport avec ce message

comment créer une chaîne dans une clé dans la base registre ? [ par wres ] salut,je voulais savoir comment créer une chaîne, une valeur binaire ou un DWORD dans une clé de la base de registre ?car j'arrive à créer une clé mai créer un clé registre (dword) [ par cddvdcopy ] voila mon probleme (j'utilise dev-C++) je voudrai creer une clé registre elle se situera ici : HKCU\Software\monlogiciel le repertoire "monlogiciel" e utilisation d'oracle forms 10g [ par ziadiala ] comment afficher les resultats d'une requete sql  dans une data grid par oracle forms? connexion c++ builder et oracle [ par azefdi ] bonjour tout le monde, jai installé oracle et jai etablé une connection avec C++ builder 6, et puis jai créer des tables à laide d sqlplus mais lo Détéction d'une clé / Disque USB [ par norton ] Bonjour à tous, Dans le cadre d'un exercice de programmation je cherche à écrire dans un fichier contenu sur une clé ou un disque dur USB. J'arriv fenetre turbo c [ par futuringenieure ] salut, je suis entrain de réaliser un projet qui s'interesse à la création d'une fenetre semblable à celle du turbo c. j'ai reussi à créer la console AIDEZ MOI urgent!!! [ par caillou78 ] Bonjour, je suis en train de créer un jeu en language C et j'utilise la bibliotheque SDL ainsi je voudrais savoir comment créer un bouton... de sorte Créer une socket de calcul parallèle [ par walidhas ] slt, j'ai voulu créer une socket en MFC .Dans cette Socket le client et le serveur font chacun des calculs différents et durant ce calcul il y a échan


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales