Bonjour,
J'ai les 3 tables suivantes dans ma bdd :
Et la vue suivante :
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 CREATE TABLE implication ( implication_id serial NOT NULL, name character varying(20) NOT NULL, CONSTRAINT pk_implication PRIMARY KEY (implication_id) ) CREATE TABLE "type" ( type_id serial NOT NULL, name character varying(20) NOT NULL, CONSTRAINT pk_type PRIMARY KEY (type_id) ) CREATE TABLE dod ( dod_id serial NOT NULL, type_id integer, implication_id integer, name character varying(20), CONSTRAINT pk_dod PRIMARY KEY (dod_id), CONSTRAINT implication_id_fk FOREIGN KEY (implication_id) REFERENCES implication (implication_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT type_id_fk FOREIGN KEY (type_id) REFERENCES "type" (type_id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION )
A l'heure actuelle, ma vue contient les éléments suivants :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 CREATE OR REPLACE VIEW dod_view AS SELECT dod.name AS dod_name, type.name AS type_name, implication.name AS implication_name FROM dod, type, implication WHERE dod.type_id = type.type_id AND dod.implication_id = implication.implication_id;
Je souhaite pouvoir effectuer des transactions directement sur cette vue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 1 : "tchad";"NOUVELLE";"OTAN" 2 : "senegal";"NOUVELLE";"UE"
Je teste pour l'instant l'insertion mais je n'y arrive pas.
Si je fais directement un insert ça ne fonctionne pas :
J'ai l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part insert into dod_view values ("france","NOUVELLE","UE");
Si je passe par la création d'une Rule, j'ai exactement la même erreur :ERROR: column "france" does not exist
LINE 1: insert into dod_view values ("france","NOUVELLE","UE");
Pourriez vous m'aider ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 CREATE OR REPLACE RULE insert_dod_view AS ON INSERT TO dod_view DO INSTEAD INSERT INTO dod (name, type_id, implication_id) SELECT new.dod_name, type.type_id, implication.implication_id FROM dod, type, implication WHERE new.type_name::text = type.name::text AND new.implication_name::text = implication.name::text AND implication.implication_id = dod.implication_id AND type.type_id = dod.type_id;
Merci d'avance.
WwAvE
Partager