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

SQL Procédural MySQL Discussion :

Connaitre le trigger_event (INSERT/UPDATE/DELETE) dans le trigger ?


Sujet :

SQL Procédural MySQL

  1. #1
    Membre régulier
    Profil pro
    rfv
    Inscrit en
    Novembre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : rfv

    Informations forums :
    Inscription : Novembre 2006
    Messages : 91
    Points : 115
    Points
    115
    Par défaut Connaitre le trigger_event (INSERT/UPDATE/DELETE) dans le trigger ?
    Bonjour, je souhaite mettre dans une table d'historique les actions (INSERT/UPDATE/DELETE).

    J'ai donc fait 3 triggers de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TRIGGER trigger_table_update AFTER UPDATE
        ON ma_table FOR EACH ROW 
    INSERT INTO ma_table_log (champs1, champs2, date, methode) VALUES
    (NEW.champs1, NEW.champs2, CURRENT_TIMESTAMP, trigger_event);
    Sauf que dommage, "trigger_event" est recherché en temps que colonnes.
    Je cherche la variable "trigger_event" au sein du trigger. Quelqu'un l'a t'il trouvé ?

    Ceci permettant d'éviter de coder en dur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TRIGGER trigger_table_update AFTER UPDATE
        ON ma_table FOR EACH ROW 
    INSERT INTO ma_table_log (champs1, champs2, date, methode) VALUES
    (NEW.champs1, NEW.champs2, CURRENT_TIMESTAMP, 'UPDATE');

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Euh... ton trigger est AFTER UPDATE donc il ne se déclenchera que sur un UPDATE !
    Si tu veux faire le même genre de chose pour les insertions et les suppressions, il faut créer des triggers AFTER INSERT et AFTER DELETE.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre régulier
    Profil pro
    rfv
    Inscrit en
    Novembre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : rfv

    Informations forums :
    Inscription : Novembre 2006
    Messages : 91
    Points : 115
    Points
    115
    Par défaut
    Oui, c'est ce que je disais sans citer les 3 exemples, mais j'ai fais 3 triggers :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE TRIGGER trigger_table_insert AFTER INSERT ...
    CREATE TRIGGER trigger_table_update AFTER UPDATE ...
    CREATE TRIGGER trigger_table_delete AFTER DELETE ...
    Mais j'aurais souhaiter connaitre le mode d'évènement du trigger (trigger_event) à l'intérieur de mes triggers du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... CURRENT_TIMESTAMP, VARIABLE_MYSQL_trigger_event);
    au lieu de coder dans chaque trigger la correspondance du trigger_event :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ... CURRENT_TIMESTAMP, 'INSERT');
    ... CURRENT_TIMESTAMP, 'UPDATE');
    ... CURRENT_TIMESTAMP, 'DELETE');

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Puisqu'un trigger AFTER UPDATE ne se déclenchera que sur des UPDATE, qu'est-ce qui te pose problème à coder en dur 'UPDATE' dans la requête ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre régulier
    Profil pro
    rfv
    Inscrit en
    Novembre 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : rfv

    Informations forums :
    Inscription : Novembre 2006
    Messages : 91
    Points : 115
    Points
    115
    Par défaut
    Un copier/coller non générique.
    Tant pis je vais faire écrire mes 3 copier/coller...

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

Discussions similaires

  1. LINQ to SQL] Tracer les requêtes SQL d'Insert/Update/Delete
    Par annalady dans le forum Accès aux données
    Réponses: 5
    Dernier message: 30/07/2009, 10h17
  2. Récupérer les erreurs Oracle pendant les insert/update/delete
    Par robinson50 dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 05/03/2009, 11h44
  3. requéte insert /update/delete par dataAdapter
    Par magui_laurene dans le forum Accès aux données
    Réponses: 1
    Dernier message: 02/08/2007, 14h12
  4. Réponses: 4
    Dernier message: 05/04/2005, 18h28
  5. Redirect de la page après un insert/update/delete
    Par mchicoix dans le forum XMLRAD
    Réponses: 5
    Dernier message: 25/02/2005, 09h31

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