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 Triggers sous Mysql 5


Sujet :

SQL Procédural MySQL

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut Problème de Triggers sous Mysql 5
    Bonjour,
    Je dois créer un triggers tres simple:

    [cpp]
    CREATE TRIGGER queries_Notes BEFORE INSERT ON demandes_conges_temp
    FOR EACH ROW BEGIN
    UPDATE demandes_conges SET status = NEW.accept , validation_date=NOW() WHERE key_query = NEW.qkey;
    END;
    [/cpp]


    Mais Mysql me renvoit:
    Error Code : 1064
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE demandes_conges SET status=NEW.accept , validation_date=NOW() where key_q' at line 4
    (0 ms taken)

    Error Code : 1064
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END
    CREATE TRIGGER testref BEFORE INSERT ON test1
    FOR EACH ROW BEGIN
    END' at line 1
    (0 ms taken)

    Error Code : 1064
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE demandes_conges SET status = NEW.accept , validation_date=NOW() WHERE key' at line 3
    (0 ms taken)

    Error Code : 1064
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 1
    (0 ms taken)


    J'utilise SQL Yog...
    Je comprend vraiment pas...
    meme les exemples du site MySQL marche pas...
    A part les tres basique comme:
    [cpp]
    mysql> CREATE TRIGGER ins_sum BEFORE INSERT ON account
    -> FOR EACH ROW SET @sum = @sum + NEW.amount;
    [/cpp]

  2. #2
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    Salut,

    Sûrement un problème de délimiteur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DELIMITER |
     
    CREATE TRIGGER ...
     
    END |
     
    DELIMITER ;

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut
    DELIMITER |

    CREATE TRIGGER
    FOR EACH ROW BEGIN
    UPDATE demandes_conges SET status = NEW.accept , validation_date=NOW() WHERE key_query = NEW.qkey;
    END |

    DELIMITER ;


    Ca me renvoit toujours la meme erreur

  4. #4
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    T'as oublié un bout dans ton code là.

    Ceci fonctionne (la création en tout cas) chez moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DELIMITER |
     
    CREATE TRIGGER queries_Notes BEFORE INSERT ON demandes_conges_temp
    FOR EACH ROW BEGIN
    UPDATE demandes_conges SET status = NEW.accept , validation_date=NOW() WHERE key_query = NEW.qkey;
    END |
     
    DELIMITER ;

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut
    Comment ca?
    C'est pas suffisant?
    Je comprend pas :S

  6. #6
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    Là je ne te comprends pas non plus

    Dans le dernier code que tu as donné, il manquait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    queries_Notes BEFORE INSERT ON demandes_conges_temp
    Le code que j'ai donné est complet et il n'y a aucune erreur chez moi. Est-ce que chez toi c'est bon ?

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut
    Biglo je te remercie mais ca marche toujours pas
    J'ai meme tester sur la 5.1 en Beta...
    Sous SQL Yog , sous PHP myADMIN et rien :'(

  8. #8
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    je crois que phpmyadmin ne permet pas de créer des procédures.

    Essaie en console (désolé ) avec l'exécutable "mysql". Ou alors avec un outil officiel du genre QueryBrowser.

  9. #9
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut
    toujours rien ...
    erreur 1064...
    Y'a t'il une option a configuré pour pouvoir créer des triggers?

  10. #10
    Membre éprouvé
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Points : 984
    Points
    984
    Par défaut
    Normalement non, faut juste MySQL >= 5 et le privilège TRIGGER pour l'utilisateur qui veut créer des triggers (mais ça ne renvoie pas cette erreur si on n'a pas ce privilège).

  11. #11
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut
    Biglo , j'ai tout essayer...
    Query Browser...J'ai bien sur les super privileges...toujours rien...même chez moi ca marche pas...
    Y'a t'il une extension a rajouter pour les triggers?

  12. #12
    Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 193
    Points : 47
    Points
    47
    Par défaut
    Je comprend pas...ca marche en mode console ...
    Je te remercie Biglo même si j'aurais du y penser
    Mais j'aimerais bien savoir pourquoi ca marche pas avec un client externe

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

Discussions similaires

  1. Trigger sous Mysql : Problème
    Par Aymeeeric dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 25/05/2009, 16h57
  2. Trigger sous MySQL
    Par champijulie dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 11/04/2007, 10h57
  3. Trigger sous MySQL + calcul de TIME
    Par dragonfly dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 01/03/2007, 12h05
  4. Problème avec select sous MYSQL
    Par Thomad dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/01/2006, 11h26

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