[Résolu][Script]prob de clés étrangères
Salut !
J'ai un ptit prob de requête pour créer mes clés étrangères. Je sui débutant dans ce domaine, j'ai donc créé ma base sous AMC Designor et j'ai généré le script à partir du modèle physique pour avoir un modèle. Il m'a donné le script des tables suivi de celui des clés étrangères.
Mon prob est le suivant (exemple sur une partie de ma Bdd):
J'ai ma table SALARIE(mat_sal, nom_sal, pren_sal, num_bad) et ma table ABSENCE (code_abs, lib_abs). J'ai placé une liaison HIST_ABS (date_abs) entre ces 2 tables.
Quand je génère le modèle physique, mat_sal et code_abs se transmettent à HIST_ABS en clès étrangère (ce qui est normal).
Mais quand je génère le script j'ai ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| /* ============================================================ */
/* Table : SALARIE */
/* ============================================================ */
create table SALARIE
(
MAT_SAL NUMERIC(7) not null,
CODE_ETAB CHAR(2) not null,
CODE_CY CHAR(10) not null,
CODE_GRILLE CHAR(10) not null,
NOM_SAL CHAR(25) ,
PREN_SAL CHAR(25) ,
NUM_BAD NUMERIC(7) ,
constraint PK_SALARIE primary key (MAT_SAL)
);
/* ============================================================ */
/* Table : ABSENCE */
/* ============================================================ */
create table ABSENCE
(
CODE_ABS CHAR(3) not null,
LIB_ABS VARCHAR(25) ,
constraint PK_ABSENCE primary key (CODE_ABS)
);
/* ============================================================ */
/* Table : HIST_ABS */
/* ============================================================ */
create table HIST_ABS
(
CODE_ABS CHAR(3) not null,
MAT_SAL NUMERIC(7) not null,
DATE_ABS DATE ,
constraint PK_HIST_ABS primary key (CODE_ABS, MAT_SAL)
); |
Dans SALARIE
Code:
1 2 3 4
|
CODE_ETAB CHAR(2) not null,
CODE_CY CHAR(10) not null,
CODE_GRILLE CHAR(10) not null, |
sont des clés primaires d'autres tables, pouquoi elles ont été transmis comme ça je sais pas? :?
Mais c'est dans HIST_ABS que ça me plait pas. CODE_ABS et MAT_SAL sont tranmis comme des clés primaires alors que se sont des clés étrangères !?!
De plus j'ai aussi ceci:
Code:
1 2 3 4 5 6 7
| alter table HIST_ABS
add constraint FK_HIST_ABS_ABSENCE foreign key (CODE_ABS)
references ABSENCE;
alter table HIST_ABS
add constraint FK_HIST_SALARIE foreign key (MAT_SAL)
references SALARIE; |
Ceci afin de déclarer mes relations avec les clés étrangères qui vont avec.
Comment puis-je mixer tout ceci? Si je le laisse tel quel, lorsque je veux éxécuter ce script j'ai:
Citation:
Unsuccessful metadata update
object ABSENCE is in use
Statement: alter table HIST_ABS
add constraint FK_HIST_ABS_ABSENCE foreign key (CODE_ABS)
references ABSENCE
Quelqu'un pourrait-il m'indiquer une syntaxe correcte?
Merci beaucoup d'avance
Seb :P
Re: [Script]prob de clés étrangères
essaye ça :
Code:
1 2 3 4 5 6 7
| alter table HIST_ABS
add constraint FK_HIST_ABS_ABSENCE foreign key (CODE_ABS)
references ABSENCE (CODE_ABS);
alter table HIST_ABS
add constraint FK_HIST_SALARIE foreign key (MAT_SAL)
references SALARIE (MAT_SAL); |