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 :

erreur sur trigger UPDATE


Sujet :

SQL Procédural MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 24
    Points
    24
    Par défaut erreur sur trigger UPDATE
    bonjour, je suis rouillé sur les trigger et je ne m'en sort pas pour en faire un très simple :
    Je suis sous MySQL 5.1.3
    je possède une table USER qui contient un champs ACTIVE et TENTATIVE

    je voudrais qu'après un UPDATE si TENTATIVE=0 alors ACTIVE='false'

    j'ai fait le trigger suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CREATE TRIGGER `mytheques`.`t1`
    AFTER UPDATE ON `mytheques`.`user`
    FOR EACH ROW
    UPDATE user SET active='false' WHERE id=NEW.id AND tentative=0
    par la suite je ne peut plus faire d'update sur la table user car elle est locker par le trigger.

    peut être qu'un trigger n'est pas adapté à ce que je veux faire ou que je m'y prend mal.

    Toute aide sera bonne à prendre

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    685
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 685
    Points : 658
    Points
    658
    Par défaut


    De cette façon ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TRIGGER mytheques.t1 AFTER UPDATE ON mytheques.user
    FOR EACH ROW
    BEGIN
        IF NEW.tentative = 0
            THEN UPDATE user SET active='false' WHERE id=NEW.id;
        END IF;
    END

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Le plus simple est de modifier les données de new juste avant l'insertion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TRIGGER mytheques.t1 BEFORE UPDATE ON mytheques.user
    FOR EACH ROW
    BEGIN
        IF NEW.tentative = 0
            THEN SET new.active='false' ;
        END IF;
    END
    ou, pour tout ramener à une seule ligne et éviter les histoires de point-virgule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE TRIGGER mytheques.t1 BEFORE UPDATE ON mytheques.user
    FOR EACH ROW
    SET new.active = CASE 
      WHEN NEW.tentative = 0 THEN 'false' 
      ELSE new.active 
    END ;
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    merci beaucoup, en effet le plus rapide était de modifier les données à la volée avant l'insertion, c'est bien plus propre de toute manière.

    ^^

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

Discussions similaires

  1. Erreur sur SQL update
    Par noftal dans le forum SQLite
    Réponses: 1
    Dernier message: 25/09/2013, 01h12
  2. Gestion Erreur sur DataAdapter.Update
    Par cedricg1976 dans le forum C#
    Réponses: 2
    Dernier message: 07/05/2010, 11h59
  3. Erreur sur l'update d'une base de données
    Par hunteshiva dans le forum VB.NET
    Réponses: 2
    Dernier message: 30/03/2010, 09h58
  4. Message erreur sur méthode Update dans une gridview
    Par zefog dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 22/02/2008, 12h00
  5. [SQL2000] Erreur sur Trigger
    Par tornade69 dans le forum Développement
    Réponses: 2
    Dernier message: 21/01/2008, 21h42

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