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

PostgreSQL Discussion :

variable trigger


Sujet :

PostgreSQL

  1. #1
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Septembre 2003
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2003
    Messages : 302
    Points : 331
    Points
    331
    Par défaut variable trigger
    Bonjour à tous,

    je veux faire un trigger qui mette à jour les variables upd_date et upd_user de toutes mes tables. Ces 2 variables permettent de savoir quel est le dernier utilisateur à "avoir fait des conneries" sur les enregistrements . Donc au départ, j'avais fait une fonction du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    BEGIN
    	NEW.upd_date = current_timestamp;
    	NEW.upd_user = session_user;
    	RETURN NEW;
    END;
    Tout marchait bien dans le meilleur des mondes. Cependant, j'ai du changer le nom de ces 2 variables et elles sont toutes nommées sous cette forme premièrelettretable_upd_date et premièrelettretable_upd_user donc pour mon trigger je dois essayer de retrouver le nom de mes champs en dynamique.
    J'ai donc tenté ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    BEGIN
    	SELECT INTO updatedate attname FROM pg_attribute, pg_class WHERE pg_class.relname=TG_RELNAME AND pg_class.relfilenode = pg_attribute.attrelid AND attname like '%_upd_date' ORDER BY 1;
    	NEW.updatedate = current_timestamp;
    	SELECT INTO updateuser attname FROM pg_attribute, pg_class WHERE pg_class.relname=TG_RELNAME AND pg_class.relfilenode = pg_attribute.attrelid AND attname like '%_upd_usr' ORDER BY 1;
    	NEW.updateuser = session_user;
    	RETURN NEW;
    END;
    Seulement le problème est qu'il n'a pas l'air d'accepter mes variables updatedate et updateuser. Ce que je concois mais existe-t-il une solution ??

    J'espère que j'ai été assez explicite. Merci d'avance.
    L'héroïsme, c'est encore la meilleure façon de devenir célèbre quand on n'a pas de talent
    Pierre Desproges

  2. #2
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Septembre 2003
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2003
    Messages : 302
    Points : 331
    Points
    331
    Par défaut
    personne n'a la réponse à ma question ?
    même si c'est pour me dire que ce que je veux faire est impossible
    L'héroïsme, c'est encore la meilleure façon de devenir célèbre quand on n'a pas de talent
    Pierre Desproges

Discussions similaires

  1. variable trigger old et new
    Par Issam dans le forum Développement
    Réponses: 2
    Dernier message: 23/09/2010, 12h58
  2. Réponses: 9
    Dernier message: 31/01/2006, 09h04
  3. Variable OUTPUT dans Trigger
    Par Yanmeunier dans le forum Développement
    Réponses: 4
    Dernier message: 09/12/2005, 13h38
  4. Procédures stockées, Trigger et variables internes
    Par lio33 dans le forum InterBase
    Réponses: 1
    Dernier message: 01/09/2005, 10h28
  5. Réponses: 5
    Dernier message: 25/11/2003, 09h41

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