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 dans rêquete MySql création Trigger


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 39
    Par défaut Erreur dans rêquete MySql création Trigger
    Bonjour,

    Je n'arrive pas à faire fonctionner la requête de création de mon trigger, je viens donc chercher votre expérience.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     CREATE TRIGGER update_table_X BEFORE UPDATE ON table_X 
    FOR EACH ROW 
    BEGIN 
    IF( (
    SELECT COUNT( * )
    FROM logs
    WHERE table_name = 'table_X'
    AND key_values = OLD.rowid
    AND `type` = 'insert' ) =0
    )
    THEN
    INSERT INTO logs( id_log, table_name, key_names, key_values, `type` )
    VALUES ( 0, 'table_X', 'rowid', OLD.rowid , 'update' ) ;
     
    MySQL a répondu:Documentation
    #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 'INSERT INTO logs ( id_log, table_name, key_names, key_values, `t' at line 3

    Petite explication: j'ai une table de log qui me permet de faire un suivi des modifications dans la base. Lors d'un update, je veux créer un log de type Update dans ma table seulement si cette table ne contient pas déjà un log de type insert (un autre trigger se charge d'avoir créé cette ligne).


    Merci d'avance de votre aide.

    Bonne journée

    Maximilien

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    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 284
    Par défaut
    Tu as un IF sans END IF et un BEGIN sans END.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 39
    Par défaut
    Merci, c'était exactement ça.

    Je pensais que quand il y avait un seul traitement dans le IF, le END IF était optionnel comme les { } dans de nombreux langage.

    Bonne journée

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

Discussions similaires

  1. [2012] erreur dans Ssms à la création de schéma
    Par marcl1 dans le forum Administration
    Réponses: 2
    Dernier message: 02/07/2013, 18h54
  2. [MySQL] erreur dans requete mysql
    Par serna dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 14/06/2013, 11h36
  3. erreur lors de la création trigger mysql
    Par risfox dans le forum Requêtes
    Réponses: 2
    Dernier message: 25/09/2011, 11h42
  4. [VBS] erreur dans mon script "création d'utilisateur AD"
    Par stefdu59 dans le forum VBScript
    Réponses: 8
    Dernier message: 07/05/2009, 16h08
  5. Réponses: 1
    Dernier message: 06/06/2006, 17h52

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