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

Langage SQL Discussion :

trigger pour update autre table


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Par défaut trigger pour update autre table
    Hello,

    Petite question. Je souhaiterais utiliser les trigger dans une application que je dois maintenir. J'ai bien compris l'utilisation des trigger dans un after ou before, afin de faire des actions sur la table concernée.

    Est-il possible d'utiliser un trigger afin de faire un update sur une autre table? Si oui, comment? Je n'arrive pas a trouver la bonne syntaxe

    L'idée serait grosso modo ca:

    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
    create trigger
        maj_srs_data
    AFTER 
        update ON srs_airline_seats
    FOR EACH ROW 
    BEGIN
        update 
            company_airline 
        set 
            SRS_TOTAL_SEATS = (
                select 
                    sum(`srs_airline_seats`.`pax_seat`) AS `sum(pax_seat)` 
                from 
                    `srs_airline_seats` 
                where 
                    (`srs_airline_seats`.`al_iata_code` = `company_airline`.`iata_code`)
                )
        WHERE
            company_airline.id = old.id
    END
    Une idée?

    merci.
    Onet

    @edit: sous Mysql 5

  2. #2
    Membre éclairé
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Par défaut
    Bon,

    Je me réponds tout seul. C'est parfaitement possible. Il suffit juste de faire 2-3 trucs de "juste"

    A titre d'exemple, je pose ma requete correcte, ca permettra de faire une comparaison, si jamais.

    Onet

    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
    delimiter //
    DROP TRIGGER maj_srs_data//
    create trigger
        maj_srs_data
    AFTER 
        update ON srs_airline_seats
    FOR EACH ROW 
    BEGIN
        update 
            company_airline 
        set 
            SRS_TOTAL_SEATS = (
                select 
                    sum(`srs_airline_seats`.`pax_seat`) AS `sum(pax_seat)` 
                from 
                    `srs_airline_seats` 
                where 
                    (`srs_airline_seats`.`al_iata_code` = `company_airline`.`iata_code`)
                )
        WHERE
            company_airline.iata_code = old.al_iata_code;
    END;//
    delimiter ;

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

Discussions similaires

  1. Trigger création pb update autre table
    Par Samish dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 27/01/2011, 15h56
  2. Trigger pour Update after (last Update)
    Par LaPanic dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 13/01/2011, 12h00
  3. trigger pour limiter une table
    Par galsen3 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/06/2009, 14h45
  4. Réponses: 9
    Dernier message: 13/02/2009, 18h54
  5. Trigger pour faire une table "mirroir"
    Par lgomez dans le forum Oracle
    Réponses: 8
    Dernier message: 26/10/2005, 13h12

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