IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes PostgreSQL Discussion :

trigger update sur vue


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Points : 109
    Points
    109
    Par défaut trigger update sur vue
    Bonjour,

    Je mets à jour une table à partir d'une vue en utilisant un trigger et une fonction..


    ma table contient deux champs a et id
    vue:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CREATE OR REPLACE VIEW vue AS 
     SELECT a,
        id
       FROM table;
    trigger:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE TRIGGER t_update_valide
      INSTEAD OF INSERT OR UPDATE
      ON vue
      FOR EACH ROW
      EXECUTE PROCEDURE f_update();
    fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    CREATE OR REPLACE FUNCTION f_update()
      RETURNS trigger AS
    $BODY$
    BEGIN
     
        IF (TG_OP = 'UPDATE') THEN
            update test set a=NEW.a   where test.id=NEW.id;
            RETURN NEW;
        END IF;
    END;
    $BODY$
      LANGUAGE plpgsql VOLATILE
      COST 100;
    mon soucis est que je n'ai pas de message d'erreur et aucune mise à jour ne s'effectue dans la table test.
    Ai je oublié quelque chose ? merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Points : 109
    Points
    109
    Par défaut
    j'ai résolu ce problème en ne passant pas par la vue mais en créant un trigger directement sur la table.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE TRIGGER t_update_valide
      BEFORE INSERT OR UPDATE OF a
      ON table
      FOR EACH ROW
      EXECUTE PROCEDURE f_update();
    et si quelqu'un sait comment régler le problème avec la vue , je suis preneur.

    merci d’avance

Discussions similaires

  1. [Forms 6i] : update sur vue
    Par gaultier dans le forum Forms
    Réponses: 16
    Dernier message: 28/05/2010, 12h01
  2. trigger "update sur insert" avec insertion multiple
    Par harf18 dans le forum Développement
    Réponses: 4
    Dernier message: 18/05/2009, 14h46
  3. [SQL SERVER 2k5]Trigger update instead of sur vue
    Par qlaimand dans le forum Développement
    Réponses: 0
    Dernier message: 18/06/2008, 17h06
  4. Update sur vue
    Par lambert2 dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 04/04/2008, 15h19
  5. Trigger UPDATED sur plusieurs champs
    Par Maroxye dans le forum Développement
    Réponses: 4
    Dernier message: 03/04/2007, 14h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo