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 date creation / date modification [9.6]


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre confirmé Avatar de H.ile
    Profil pro
    Architecte de système d'information
    Inscrit en
    Janvier 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Janvier 2008
    Messages : 122
    Par défaut Trigger date creation / date modification
    Aloha,

    J'essaie de ne créer qu'une seule fonction trigger pour l'ensemble de ma base de données pour la mise à jour des dates de création/modif de mes objets. En effet, ils ont tous les mêmes noms de colonne pour les dates modif/création.
    Mais a priori, mon code est inopérant.

    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
    CREATE OR REPLACE FUNCTION test_trigger.datec_datem_func()
        RETURNS trigger
        LANGUAGE 'plpgsql'
        COST 100
        VOLATILE NOT LEAKPROOF 
    AS $BODY$
     
    DECLARE
    BEGIN
    IF TG_OP = 'INSERT' and NEW.date_c is null THEN
      NEW.date_c := (select current_date);
    END IF;
    IF TG_OP = 'UPDATE' and (NEW.date_m is null or NEW.date_m < (select current_date)) THEN
      NEW.date_m := (select current_date);
    END IF;
    return NEW;
    END;
     
    $BODY$;
     
    CREATE TRIGGER test_trigger
        AFTER INSERT OR UPDATE 
        ON test_trigger.test_pct
        FOR EACH ROW
        EXECUTE PROCEDURE test_trigger.datec_datem_func();
    J'avoue y perdre mon latin.

    J'ai cherché un peu sur le forum, j'ai regardé du côté de TG_TABLE_NAME, j'ai aussi essayé en intégrant des requêtes update dans le code de la fonction trigger (mais celà allait avoir des effets certains puisque j'appelle cette fonction lors d'update).
    Rien n'y fait

    D'avance, merci

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 067
    Par défaut
    Il ne faudrait pas plutôt que le trigger soit BEFORE que AFTER pour pouvoir modifier le contenu de la ligne ?
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre confirmé Avatar de H.ile
    Profil pro
    Architecte de système d'information
    Inscrit en
    Janvier 2008
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Janvier 2008
    Messages : 122
    Par défaut
    Tout à fait. De retour de déjeuner c'est ce que j'ai essayé. Avec succès. Je pensais mettre à jour la discussion.
    Merci

    PS. Le code initial ayant été écrit par un prestataire, je me demande toujours pourquoi ils ont utilisé AFTER...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WINDOWS][Date]Creation et Modification
    Par AbdouPoulou dans le forum Windows XP
    Réponses: 1
    Dernier message: 07/07/2009, 01h22
  2. Date le dernière modification
    Par np-petot dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/10/2005, 17h07
  3. [Dates] Listage + dernière modification
    Par Goshi dans le forum Langage
    Réponses: 3
    Dernier message: 02/10/2005, 15h27
  4. date de dernière modification d'une table ?
    Par NiBicUs dans le forum Requêtes
    Réponses: 3
    Dernier message: 17/12/2004, 19h11
  5. Réponses: 11
    Dernier message: 23/07/2002, 15h33

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