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 CREATE TRIGGER


Sujet :

SQL Procédural MySQL

  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Par défaut erreur CREATE TRIGGER
    Bonjour,
    je veux creer un trigger qui à chaque insertion dans une table "user", met à jours une table "tigger_log". voici mon code sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TRIGGER log BEFORE INSERT ON user 
    FOR EACH 
    ROW
    BEGIN
      INSERT INTO tigger_log(latable, ladate, username, laction) VALUES ('user', '2013-08-08', 'root', 'INSERT on user');
    END;
    Mysql me souligne les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TRIGGER log BEFORE INSERT
    et
    et m'affiche cette erreur :
    MySQL meldet: Dokumentation
    #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 '' at line 5
    quelqu'un peut m'aider ?!

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    bonjour,


    avez-vous mis un
    avant le code du create trigger ?

  3. #3
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Par défaut
    merci beaucoup pour votre reponse, j'ai modifié mon code comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    delimiter $$
    CREATE TRIGGER log BEFORE INSERT ON user 
    FOR EACH 
    ROW
    BEGIN
      INSERT INTO tigger_log(latable, ladate, username, laction) VALUES ('user', '2013-08-08', 'root', 'INSERT on user');
    END$$
    delimiter;
    je n'ai plus d'erreur, mais lors de l'ajout dans la table "user" le Trigger n'ajoute rien a la table "tigger_log" !!!

  4. #4
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    Salut,

    pour tout ce qui est log je préfère le mettre dans un trigger "after" plutôt que "before" car si l'insertion échoue tu n'auras jamais de log de toute façon...

    en fait vaut mieux penser comme ça:
    • before sert à valider ou remanier l'insertion à la voler
    • after sert à faire des mises à jour comme un log ou dans d'autres tables


    attention à l'espace obligatoire derrière delimiter
    tu utilises le nom de table tigger_log, ça ne serait pas plutôt :trigger_log?

Discussions similaires

  1. Erreur de trigger
    Par Rakken dans le forum Administration
    Réponses: 3
    Dernier message: 30/11/2006, 11h35
  2. Erreur dans TRIGGER
    Par taroudant dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 02/08/2006, 14h31
  3. probleme de create trigger
    Par mechantflou dans le forum Oracle
    Réponses: 7
    Dernier message: 03/07/2006, 11h39
  4. Réponses: 2
    Dernier message: 01/03/2006, 15h16
  5. erreur create table
    Par slefevre01 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 10/02/2006, 16h43

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