Bonjour,

Je suis débutant et je travaille avec PostgreSQL 9.0. J'ai quelques petits problèmes que je n'arrive pas à résoudre. Le premier concerne les updatable views. J'ai une vue avec plusieurs INNER JOIN et FULL OUTER JOIN. Voici à quoi la vue ressemble, avec des JOIN en moins dans un souci de clarté pour l'exemple:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
CREATE VIEW sh_men.test_vue_mentions
  AS
  SELECT M.mention_id,
         M.photo_code,
         O.nom,
         P.code
  FROM sh_men.mentions M
  INNER JOIN sh_men.precisions P ON M.precision_id = P.precision_id
  FULL OUTER JOIN sh_men.organisations O ON M.org_id = O.org_id
Le but de cette vue est de présenter des informations parlantes pour l'utilisateur plutôt que des ids (ex: O.nom soit le nom de l'organisation plutôt que M.org_id).

J'aimerais en faire une UPDATABLE VIEW. Ce que je n'arrive pas à saisir c'est comment m'y prendre pour toutes les colonnes issues des JOIN. Par exemple, à date j'ai fait une RULE sur le UPDATE comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
CREATE OR REPLACE RULE test_vue_mentions_update_rule AS
    ON UPDATE TO sh_men.test_vue_mentions
    DO INSTEAD
    UPDATE sh_men.mentions
    SET mention_id = NEW.mention_id, photo_code = NEW.photo_code
    WHERE mention_id = OLD.mention_id
Par contre, comment faire pour que dans la table mentions le id de l'organisation (M.org_id) soit changé en fonction du nom de l'organisation (O.nom) saisi?

Je vous remercie beaucoup pour votre aide,

Mathieu