[postgre] Trigger sur vue - héritage
Bonjour à tous,
j'ai un problème pour la gestion d'héritage par trigger sur ma base de données.
Il y a 2 table, Support, et DVD (table fille).
support(ref,date_sortie,prix,duree,url,nb_dl)
dvd(#ref,titre,syn)
Le champ ref de support est auto incrementer.
Ces 2 tables sont jointer dans la vue "vuedvd".
Mes professeurs me demandes de gérer cet héritage par trigger.
J'ai fait le trigger ci-dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| -- ---- Fonction
CREATE OR REPLACE FUNCTION "Fct_InsertDvd"()
RETURNS trigger AS
$BODY$
BEGIN
INSERT INTO support(date_sortie,prix,duree,url,nb_dl)
VALUES (NEW.date_sortie,NEW.prix,NEW.duree,NEW.url,NEW.nb_dl)
RETURNING ref AS id;
INSERT INTO dvd(ref,titre,syn)
VALUES (id,NEW.titre,NEW.syn);
END
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION "Fct_InsertDvd"()
OWNER TO postgres;
-- ---- Trigger
CREATE TRIGGER InsertDvd
INSTEAD OF INSERT ON vuedvd
FOR EACH ROW
EXECUTE PROCEDURE "Fct_InsertDvd"(); |
et lorsque j'envoie ma requête dans PgAdmin, j'ai ceci :
Code:
1 2 3
| ERREUR: la requête n'a pas de destination pour les données résultantes
État SQL :42601
CONTEXT: fonction PL/pgsql « Fct_InsertDvd », ligne 3 à instruction SQL |
le code erreur correspond à :
42601 - Un caractère, une marque ou une clause est incorrect ou absent.
Mais je ne vois pas ce qui est incorrect ou absent ... o.O