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 :

Trigger sur une table et mise à jour


Sujet :

SQL Procédural MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2002
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 35
    Points : 32
    Points
    32
    Par défaut Trigger sur une table et mise à jour
    Bonjour

    Je m'arrache les cheveux avec un trigger. Je m'explique :
    Je veux que le trigger mette à jour une valeur après son lancement.
    Si je fais un UPDATE manuel dans le trigger alors j'ai l'erreur "MySQL error 1442
    Can't update table 'fc_client' in stored function/trigger because it is already used by statement which invoked this stored function/trigger."

    Pour contourner ce problème j'utilise alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET NEW.CL_DATE_DE_COMPLTUDE_DU_DOSSIER_54 = date_maj;
    De ce fait, la mise à jour de la valeur se fait bien. Mais cela marche uniquement dans un trigger BEFORE. Or moi j'ai besoin de mettre à jour cette valeur avec un trigger AFTER.

    Je ne sais donc pas comment lancer un trigger AFTER UPDATE qui permette de mettre à jour la valeur dans cette même table.
    La commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET NEW.CL_DATE_DE_COMPLTUDE_DU_DOSSIER_54 = date_maj;
    est rejetée
    Updating of NEW row is not allowed in after trigger

    Je ne sais donc pas comment faire.
    Merci pour votre aide ...

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 738
    Points
    11 738
    Par défaut
    Comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE ta_table
    SET ta_table.CL_DATE_DE_COMPLTUDE_DU_DOSSIER_54 = date_maj 
    WHERE ta_table.ID = NEW.ID ;

Discussions similaires

  1. Create trigger sur une table
    Par farenheiit dans le forum Administration
    Réponses: 8
    Dernier message: 18/04/2015, 17h20
  2. Réponses: 3
    Dernier message: 11/01/2013, 14h28
  3. Trigger sur une table met à jour d'autres tables
    Par KiAhS dans le forum Débuter
    Réponses: 1
    Dernier message: 19/07/2011, 18h33
  4. Problème sur une requête de mise à jour entre 2 tables
    Par Throbb dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/03/2009, 14h43
  5. Réponses: 1
    Dernier message: 19/11/2007, 19h27

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