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 :

J'ai pas bien compris la doc triggers [9.2]


Sujet :

PostgreSQL

  1. #1
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut J'ai pas bien compris la doc triggers
    salut la foule, les experts, les galinacés et les aliens...

    Je viens de lire la doc sur le site au niveau des triggers ainsi que celle du site officiel postgresql.

    Je pensais faire un truc tout simple mais visiblement soit c'est pas possible parce que la methode a changé par rapport aux vieilles versions que je connaissait pas trop trop mal, mais j'ai plus pratiqué depuis un moment....

    Le truc est simple
    j'ai une table stock classique : id,ref,designation,caracteristiques,date_entree,etc......
    j'ai une table de suivi de ce qu'on a eu par le passé : id,ref,designation,marque

    je voulais juste faire un simple trigger avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    create trigger ......after insert 
    begin
    insert into dejareference values (new.ref,nex.designation,new.marque);
    end;
    d'après les docs seul l'appel à une procédure peut être fait par un trigger ?? il faut 2 étapes ??
    et google semble confirmer ça...avec 10/15 exemples ou à chaque fois la seule solution est un appel de procédure ??

    C'est abhérant ? non ? Tout ce que je veux c'est une copie dynamique de certains champs vers une autre table.... la base quoi le plus simple trigger qu'on puisse faire ...

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,


    Sur quelle vielle version aviez vous ce comportement ?

    En version 7 (année 2000) ca marchait déjà comme ceci

  3. #3
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    Ah ok c'est donc normal comme procédure...

    J'ai du me mélanger les saucisses avec sqlite ou mysql alors...
    Merci en tout cas.

  4. #4
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    Ducoup avec la bonne methode ça marche parfaitement bien sur...


    y'a plus qu'à réflechir à faire dans le meme genre avec des requettes propres et réflechies et ça roule tout seul

    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
    test=# create or replace function wrt_to_jaieu() returns trigger as $rdntrs_jaieu$
    begin
    insert into jaieu (ref, machine, commentaire) values((select max(ref) from jaieu)+1,(select model from rdntrs where ref=(select max(ref) from rdntrs)), (select type_proc from rdntrs where ref=(select max(ref) from rdntrs)));
    return new;
    end;
    $rdntrs_jaieu$ language plpgsql ;
    CREATE FUNCTION
    test=# create trigger rntrsqjaieu before insert on rdntrs execute procedure wrt_to_jaieu() ;
    CREATE TRIGGER
    test=# insert into rdntrs values (63,2,'treter',4096,'tteztt',720000,'toto',1);
    INSERT 0 1
    test=# select * from jaieu  ;
     ref |       machine        | commentaire 
    -----+----------------------+-------------
     1   | sdgdg                | fdsfsd
     2   | tteztt               | treter
    (4 rows)
    test=#
    test=#\c perso

    Merci

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

Discussions similaires

  1. Je n'ai pas bien compris les structures
    Par Invité dans le forum Débuter
    Réponses: 4
    Dernier message: 08/07/2013, 17h07
  2. FreePascal, Lazarus, pas bien compris..
    Par Just-Soft dans le forum Langage
    Réponses: 3
    Dernier message: 28/02/2009, 16h24
  3. Bug aléatoire et pas très bien compris (open/close_system)
    Par LordPeterPan2 dans le forum Simulink
    Réponses: 8
    Dernier message: 03/07/2007, 11h08
  4. Réponses: 7
    Dernier message: 14/08/2006, 09h18
  5. [THREAD][DAEMON]Pas bien compris....
    Par XristofGreek dans le forum Concurrence et multi-thread
    Réponses: 2
    Dernier message: 24/09/2004, 13h28

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