Bonjour,
Admettons que j'ai la table suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 --------------------------------- | TABLE VEHICULE | --------------------------------- | ID | CATEGORIE | MODELE | KM | --------------------------------- | 1 | Voiture | Twingo | 100 | | 2 | Voiture | Clio | 50 | | 3 | Moto | Burgman| 14 | | 4 | Moto | Tmax | 5 | ---------------------------------
j'ai 2 autres tables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 --------------------- | TABLE VOITURE | --------------------- | ID | MODELE | KM | ---------------------avec les sequences associées (SEQ_VOITURE, SEQ_MOTO).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 --------------------- | TABLE MOTO | --------------------- | ID | MODELE | KM | ---------------------
et enfin 2 tables qui font la liaison entre la VEHICULE et VOITURE et MOTO
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ---------------------------- | TABLE VEH_VOITURE | ---------------------------- | ID_VEHICULE | ID_VOITURE | ----------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 -------------------------- | TABLE VEH_MOTO | -------------------------- | ID_VEHICULE | ID_MOTO | --------------------------
Je voudrais faire une procèdure stockée (ou une fonction ou quelque chose) qui :
selectionne tous les éléments étant de la CATEGORIE "Voiture" de la table VEHICULE
les insère dans la table VOITURE avec la sequence correspondante
met à jour la table VEH_VOITURE avec l'id de la table VEHICULE et l'id de la table VOITURE (généré par la sequence)
et bien sûr la même chose pour moto (mais si ça marche pour voiture, y aura plus qu'à changer le nom)
les scripts de créations :
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 --table VEHICULE create table VEHICULE ( ID INTEGER not null, CATEGORIE VARCHAR2(20) not null, MODELE VARCHAR2(20) not null, KM NUMBER not null, primary key (ID) ); --données de la table VEHICULE insert into VEHICULE (ID,CATEGORIE, MODELE,KM) values (1, 'Voiture', 'Twingo', 100); insert into VEHICULE (ID,CATEGORIE, MODELE,KM) values (2, 'Voiture', 'Clio', 50); insert into VEHICULE (ID,CATEGORIE, MODELE,KM) values (3, 'Moto', 'Burgman', 14); insert into VEHICULE (ID,CATEGORIE, MODELE,KM) values (4, 'Moto', 'Tmax', 5); --table VOITURE create table VOITURE ( ID INTEGER not null, MODELE VARCHAR2(20) not null, KM NUMBER not null, primary key (ID) ); --table MOTO create table MOTO ( ID INTEGER not null, MODELE VARCHAR2(20) not null, KM NUMBER not null, primary key (ID) ); --Sequence MOTO create sequence SEQ_MOTO increment by 1 start with 000001; --Sequence VOITURE create sequence SEQ_VOITURE increment by 1 start with 000001; create table VEH_VOITURE ( ID_VEHICULE INTEGER not null, ID_VOITURE INTEGER not null, primary key (ID_VEHICULE,ID_VOITURE) ); create table VEH_MOTO ( ID_VEHICULE INTEGER not null, ID_MOTO INTEGER not null, primary key (ID_VEHICULE,ID_MOTO) );
Pouvez-vous m'aider ?
Merci
PoichOU
PS : j'espère que la lecture du post ne vous a pas saouler mais j'ai essayer d'être précis.
Partager