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

MySQL Discussion :

impossible de créer des triggers


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Par défaut impossible de créer des triggers
    bonjour
    il y a un truc qui doit m'échapper, mais je n'arrive pas faire de triggers sur ma BD mysql (version 5.0.83)
    j'obtiens toujours la même erreur, même avec des triggers très simples pourtant

    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

    exemple de mes triggers simples :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TRIGGER BI_adherent_apaye BEFORE INSERT
        ON ADHERENT
        FOR EACH ROW 
    BEGIN
    	NEW.apaye = 1;
    END;
    quelqu'un pourrait m'aider à comprendre ? le manuel mysql ne m'a pas apporté de réponses

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    Je pense que ton problème est un problème de délimiteur... cf l'avertissement "A propos du délimiteur" dans le tuto http://alain-defrance.developpez.com...-error/#LIII-B.

    Ceci dit, dans ton cas, comme il n'y a qu'une requête dans ton trigger, le BEGIN... END n'est pas nécessaire, ce qui règlera le problème de délimiteur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TRIGGER BI_adherent_apaye 
        BEFORE INSERT ON ADHERENT
        FOR EACH ROW 
        NEW.apaye = 1;

  3. #3
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Par défaut
    j'ai testé sans délimiteur et j'obtiens :

    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 '.apaye = 1' at line 4
    (0 ms taken)
    c possible que ce soit un problème de droit ?

  4. #4
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Par défaut
    "La commande CREATE TRIGGER requiert le droit de SUPER. Elle a été ajoutée en MySQL 5.0.2. "

    j'ai télécharger la version 5.0.83, mais lorsque je l'installe sur ma machine, ya juste écrit version 5.0
    bon le problème c que le téléchargement de la version 5.1 bloque à 96%
    je ne peux pas tester si le problème vient de là. à votre avis ?

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 288
    Par défaut
    Le message est "erreur de syntaxe" donc ça n'est pas un problème de privilèges... en relisant ta requête, je m'aperçois qu'il manque le SET :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TRIGGER BI_adherent_apaye 
        BEFORE INSERT ON ADHERENT
        FOR EACH ROW 
        SET NEW.apaye = 1 ;

  6. #6
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Par défaut
    ah oui en effet ! merci beaucoup ça marche mieux

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

Discussions similaires

  1. Impossible de créer des clés étrangères
    Par beegees dans le forum Débuter
    Réponses: 2
    Dernier message: 11/11/2008, 15h02
  2. MySql, accorder droit pour créer des triggers
    Par arnaudco dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 04/02/2008, 21h23
  3. Impossible de créer des fichiers dans un répertoire
    Par isabelle674 dans le forum Solaris
    Réponses: 11
    Dernier message: 24/01/2008, 00h04
  4. Impossible de créer des sessions
    Par Ben42 dans le forum Langage
    Réponses: 14
    Dernier message: 03/11/2006, 13h14
  5. Impossible de créer des procedures stockée ==> ERREUR 106
    Par JMS_PCO dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 27/02/2006, 17h33

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