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 de trigger


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Par défaut Problème de trigger
    Bonjour,

    Voici mon trigger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    mysql> CREATE TRIGGER valide_ecg AFTER UPDATE ON ecg
        -> FOR EACH ROW
        -> BEGIN
        ->  IF NEW.id_client <> null THEN
        ->   IF NEW.id_cardio <> null THEN
        ->    SET NEW.valide = 1;
        ->   END IF;
        -> END IF;
        -> END|
    La création ne pose pas de problème. Par contre il n'a pas l'effet prévu lors d'un update de ma table ecg.
    Débutant dans le domaine, percevez vous une horreur monumentale dans mon script ??? (syntaxe, instruction, non sens...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    mysql> update ecg set id_client=null where id_ecg=3;
    Query OK, 1 row affected (0.01 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
     
    mysql> select * from ecg;
    +--------+-----------+-----------+-----------+-----------------+----------------------------------+--------------+--------------+---------------------+--------+
    | id_ecg | id_pharma | id_cardio | id_client | id_boitier      | fichier                          | diagnostic   | diagnostique | date                | valide |
    +--------+-----------+-----------+-----------+-----------------+----------------------------------+--------------+--------------+---------------------+--------+
    |      1 |         1 |         1 |         1 | 0000100-1109-08 | 0000100-1109-08_161208102703.pdf |              |            0 | 2008-12-22 18:46:00 |      0 |
    |      2 |         1 |         4 |         1 | 0000100-1109-08 | 0000100-1109-08_161208102703.pdf |              |            0 | 2008-12-23 16:24:12 |      0 |
    |      3 |         1 |      NULL |      NULL | 0000100-1109-08 | 0000100-1109-08_161208102703.pdf | zazazazazaza |            0 | 2008-12-24 10:14:55 |      0 |
    +--------+-----------+-----------+-----------+-----------------+----------------------------------+--------------+--------------+---------------------+--------+
    3 rows in set (0.00 sec)
    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Tu devrais essayer en remplaçant <> NULL par IS NOT NULL
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Par défaut
    Afin d'essayer il me faut, je suppose, supprimer le trigger déjà crée...
    Or ,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    mysql> drop trigger ecg.valide_ecg;
    ERROR 1360 (HY000): Trigger does not exist
    et pourtant si j'essaye de créer le même avec ta solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql> CREATE TRIGGER valide_ecg BEFORE UPDATE ON ecg FOR EACH ROW BEGIN  IF NEW.id_client IS NOT NULL THEN   IF NEW.id_cardio IS NOT NULL THEN    SET NEW.valide = 1;   END IF; END IF; END| ERROR 1235 (42000): This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
    Il semblerait donc que l'action de mon ancien trigger soit enregistrée et pire, comprise, puisqu'il détecte que c'est "the same action"...

  4. #4
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Citation Envoyé par wilv8 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    mysql> drop trigger valide_ecg2;
    ERROR 1360 (HY000): Trigger does not exist
     
    mysql> drop trigger ecg.valide_ecg;
    ERROR 1360 (HY000): Trigger does not exist
    Ça ne serait pas plutôt DROP TRIGGER valide_ecg ?
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Par défaut
    Si tout à fait ! Ma doc est bonne à jeter...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Par défaut
    Super ça marche !

    Merci bien Maljuna Kris.

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

Discussions similaires

  1. PL/SQL problème sur Trigger
    Par kitsune dans le forum PL/SQL
    Réponses: 4
    Dernier message: 06/12/2005, 20h35
  2. [9i] problème avec trigger after logon
    Par Michael# dans le forum Oracle
    Réponses: 2
    Dernier message: 17/03/2005, 12h14
  3. [Interbase6] Problème de triggers
    Par emeraudes dans le forum Bases de données
    Réponses: 4
    Dernier message: 08/03/2005, 09h52
  4. [SQLPLUS] - Problème de Triggers Java
    Par farcis dans le forum Oracle
    Réponses: 7
    Dernier message: 23/12/2004, 09h21
  5. [PL/SQL] problème de trigger
    Par Chuck67 dans le forum Oracle
    Réponses: 14
    Dernier message: 09/12/2004, 23h17

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