Clé étrangere sous oracle
Résolu
Low
-
Low -
Low -
Salut tout le monde,
Je voudrais savoir comment mettre deux clés étrangères sur une même table.
Autant pour les clés primaires, c'est simple, par exemple :
CREATE table Associer
( IdActivité Integer NOT NULL,
IdTypeAct Integer NOT NULL,
CONSTRAINT PK_Ass PRIMARY KEY (IdActivité,IdTypeAct)
);
Autant pour la clé étrangère, j'ai essayé pas mal de petit truc mais rien ne marche!
A noter que j'arrive à en mettre une seule sans problème, exemple :
CONSTRAINT FK_LIG FOREIGN KEY (NoLig) REFERENCES ligue (NoLig)
Merci d'avance!!
Je voudrais savoir comment mettre deux clés étrangères sur une même table.
Autant pour les clés primaires, c'est simple, par exemple :
CREATE table Associer
( IdActivité Integer NOT NULL,
IdTypeAct Integer NOT NULL,
CONSTRAINT PK_Ass PRIMARY KEY (IdActivité,IdTypeAct)
);
Autant pour la clé étrangère, j'ai essayé pas mal de petit truc mais rien ne marche!
A noter que j'arrive à en mettre une seule sans problème, exemple :
CONSTRAINT FK_LIG FOREIGN KEY (NoLig) REFERENCES ligue (NoLig)
Merci d'avance!!
A voir également:
- Clé étrangère oracle
- Clé usb non détectée - Guide
- Clé windows 8 - Guide
- Formater clé usb - Guide
- Clé usb - Accueil - Stockage
- Clé bootable windows 10 - Guide
2 réponses
bonjour,
normalement la syntaxe serait :
CREATE table Associer
( IdActivité Integer NOT NULL,
IdTypeAct Integer NOT NULL,
CONSTRAINT PK_Ass PRIMARY KEY (IdActivité,IdTypeAct) ,
CONSTRAINT FK_LIG FOREIGN KEY (NoLig) REFERENCES ligue (NoLig) ,
CONSTRAINT FK_XXX FOREIGN KEY (NoXxx) REFERENCES Xxx (NoXxx)
);
il faut au moment de la creation que la/les table/s référencées existent
cdt
normalement la syntaxe serait :
CREATE table Associer
( IdActivité Integer NOT NULL,
IdTypeAct Integer NOT NULL,
CONSTRAINT PK_Ass PRIMARY KEY (IdActivité,IdTypeAct) ,
CONSTRAINT FK_LIG FOREIGN KEY (NoLig) REFERENCES ligue (NoLig) ,
CONSTRAINT FK_XXX FOREIGN KEY (NoXxx) REFERENCES Xxx (NoXxx)
);
il faut au moment de la creation que la/les table/s référencées existent
cdt
c'est prévu aussi sous oracle :
Prenons l'exemple d'une table "Article" tout ce qu'il y a de plus classique : Une clé (PK) une référence un libellé un prix La clé primaire est renseignée à l'aide d'une séquence. CREATE Table Article ( Id Number (10), Refe VARCHAR2 (16), Libe VARCHAR2 (64), Prix NUMBER (12,2)); CREATE SEQUENCE Seq_Id_Article START WITH 1 INCREMENT BY 1; INSERT INTO Article VALUES (Seq_Id_Article.NextVal, '001', 'Marteau', 7.46); INSERT INTO Article VALUES (Seq_Id_Article.NextVal, '002', 'Tournevis', 3.83); INSERT INTO Article VALUES (Seq_Id_Article.NextVal, '004', 'Lime', 5.09); COMMIT;exemple tiré d'une site qui fait référence et que tu devrais garder dans tes tablettes : https://oracle.developpez.com/cours/
Oui, en effet j'avais plus ou moins lu ça mais je pensais pas que ca pouvait être utile dans mon cas, je m'explique :
C'est une application access avec une BDD sous oracle avec un lien ODBC.
Du coup, le "Seq_xxxxxx.NextVal", je ne sais pas ou le mettre pour que dans les formulaires sous access, tout soit fait automatiquement... :/
Si tu as une idée, je suis preneur :)
A+
C'est une application access avec une BDD sous oracle avec un lien ODBC.
Du coup, le "Seq_xxxxxx.NextVal", je ne sais pas ou le mettre pour que dans les formulaires sous access, tout soit fait automatiquement... :/
Si tu as une idée, je suis preneur :)
A+
Je vais essayer comme ça, mais il me semble que j'avais déjà essayé et qu'il me sortait alors un message d'erreur genre "Il ne peut pas y avoir plus d'une clé étrangère" ou je ne sais plus trop exactement...
Je te tiens au courant.
cela s'écrit normalement :
CONSTRAINT FK_LIG FOREIGN KEY (NoLig,NoXXX) REFERENCES ligue (NoLig,NoXXX)
Je test ça demain et je te tiens au courant :)
Encore merci.
Ça marche impec, merci des conseils et de tes réponses :)
J'en profite pour te poser une autre question, vu que tu as l'air de t'y connaitre sous oracle :
- Est ce que tu sais comment faire une incrémentation automatique d'une clé primaire sur une table ?
Par exemple, sous access, ça se fait facilement sur les clés primaires...je sais pas si je t'explique bien, en gros :
Imaginons une table Activité :
IdActivité
NomActivité
Je n'aurais pas besoin de m'occuper de IdActivité, car celui ci serait incrémenter tout seul (de 0 à l'infini ...) et donc j'aurais juste à m'occuper de NomActivité. Est ce que tu vois ce que je veux faire ?
Merci d''avoir pris le temps de me lire !