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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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:
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