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 :

Problème Update dans un trigger After Delete


Sujet :

SQL Procédural MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Problème Update dans un trigger After Delete
    Bonjour,

    J'essaie de faire fonctionner un trigger AFTER DELETE mais le traitement ne fonctionne pas. J'aimerais donc avoir un petit coup de pouce si possible.

    Voici la structure des tables concernées par ce trigger:


    Lorsque je supprime une CATEGORIE, par défaut la clé étrangère de catégorie passe en SET NULL comme indiqué sur le MLD ci-dessus. Je souhaiterais que lorsqu'on supprime une catégorie, que le booléen "actif" dans ARTICLE passe à 0.

    J'ai donc construit le trigger suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DELIMITER ;;
    CREATE TRIGGER desactivarticle AFTER DELETE ON categorie
     FOR EACH ROW
     BEGIN
      UPDATE article
      SET actif= 0
      WHERE categorie_idcateg is null;
     END;;
    Mais celui-ci désactive tous les articles contenus dans la table à la suppression d'une catégorie, et non pas uniquement ceux dont la catégorie vient d'être supprimée.

    J'ai donc essayé cette variante, mais cette fois ci le trigger ne modifie pas du tout la table article:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DELIMITER ;;
    CREATE TRIGGER desactivarticle AFTER DELETE ON categorie
     FOR EACH ROW
     BEGIN
      UPDATE article
      SET actif= 0
      WHERE categorie_idcateg = old.idcateg;
     END;;
    Pouvez-vous me dire ce qui ne va pas et éventuellement me corriger svp?

    Vous remerciant par avance.

    Cordialement.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Points : 1 414
    Points
    1 414
    Par défaut
    bonjour


    et si le trigger, tu le faisais BEFORE a la place de AFTER, en utilisant l'id_categorie en clause WHERE ?

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Je te remercie pour cette piste et ta réactivité, que je ne pourrais tester que demain. Je reviendrai sur ce topic après l'avoir testé pour l'annonce du verdict.

    Cordialement.

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Youpi! ça fonctionne!

    Merci bien!

    Cordialement.

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

Discussions similaires

  1. [SQL SERVER 2005]problème requête dans un trigger
    Par Kropernic dans le forum Développement
    Réponses: 14
    Dernier message: 02/03/2010, 18h20
  2. Problème Update dans Access
    Par vb dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 29/06/2008, 12h35
  3. Trigger after delete
    Par festayre47 dans le forum PL/SQL
    Réponses: 8
    Dernier message: 27/12/2007, 12h02
  4. Liste des colonnes "updatées" dans un Trigger
    Par rapha51 dans le forum Oracle
    Réponses: 3
    Dernier message: 09/03/2007, 17h47
  5. UPDATE dans un TRIGGER
    Par exempleinfo dans le forum Oracle
    Réponses: 2
    Dernier message: 18/03/2006, 11h33

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