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:
Dans SALARIE
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) );
sont des clés primaires d'autres tables, pouquoi elles ont été transmis comme ça je sais pas?
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,![]()
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:
Ceci afin de déclarer mes relations avec les clés étrangères qui vont avec.
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;
Comment puis-je mixer tout ceci? Si je le laisse tel quel, lorsque je veux éxécuter ce script j'ai:
Quelqu'un pourrait-il m'indiquer une syntaxe correcte?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
Merci beaucoup d'avance
Seb![]()
Partager