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 lors de 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 confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Septembre 2010
    Messages : 17
    Par défaut Problème lors de création trigger
    Bonjour,

    J'ai une erreur 1064 lorsque j'essaie de créer le trigger suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    delimiter //
    CREATE TRIGGER TRG_UPDATE_Cases_Resolution BEFORE UPDATE ON cases
    FOR EACH ROW
    BEGIN
      IF (OLD.resolution <> NEW.resolution) THEN
     
        DECLARE v_user_name VARCHAR(60);
        SET users.user_name INTO v_user_name FROM users WHERE id = NEW.modified_user_id;
     
        SET NEW.resolution = CONCAT(NEW.resolution, ' [', v_user_name , ' ', NEW.date_modified, '] ');
     
      END IF;
    END;//
    delimiter ;
    L'erreur est accompagnée de la description suivante:
    "Connection problem. Could not execute command."
    Quelqu'un peut m'aider?

    Merci d'avance

    p.s. J'utilise MySql 5.1.37.

  2. #2
    Membre confirmé Avatar de Wiink
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 63
    Par défaut
    les autres requettes fonctionnent dans ta configuration ?
    C'est étrange d'avoir une erreure 1064 et un problème de connection en même temps..

  3. #3
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Septembre 2010
    Messages : 17
    Par défaut
    Bonjour Wiink,

    Oui les autres requêtes marchent bien.

    Je crois bien qu'il s'agit d'un problème de syntaxe .

    Remarquez-vous quelque chose d'anormal avec mon script?

  4. #4
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET users.user_name INTO v_u...
    Ce serait pas SELECT plutôt que SET ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Septembre 2010
    Messages : 17
    Par défaut
    Bonjour qui130,

    En effet, ça doit être un Select.

    Mais la requête ne marche toujours pas

    Voici la requête "corrigée":

    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
    delimiter //
    CREATE TRIGGER TRG_UPDATE_Cases_Resolution BEFORE UPDATE ON cases
    FOR EACH ROW
    BEGIN
     
      IF (OLD.resolution <> NEW.resolution) THEN
     
        DECLARE v_user_name VARCHAR(60);
        SELECT user_name INTO v_user_name FROM users WHERE id = NEW.modified_user_id;
     
        SET NEW.resolution = CONCAT(NEW.resolution, ' [', v_user_name , ' ', NEW.date_modified, '] ');
     
      END IF;
    END;//
    delimiter ;

  6. #6
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    DECLARE ne peut être utilisé dans un bloc BEGIN ... END
    Cf. http://dev.mysql.com/doc/refman/5.0/fr/declare.html

Discussions similaires

  1. problème lors de création d'un projet ASP.Net
    Par fifidante dans le forum ASP.NET
    Réponses: 2
    Dernier message: 15/02/2008, 23h33
  2. Problème lors d'un trigger sur update
    Par yonialhadeff dans le forum Développement
    Réponses: 1
    Dernier message: 09/10/2007, 08h44
  3. [SQL Server 2005]problème lors du création d'un nouvel utilisateur
    Par etoile_de_vie dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/08/2007, 16h05
  4. [10G] Problème lors de création de tables et champs
    Par keiserjo dans le forum Oracle
    Réponses: 7
    Dernier message: 28/09/2006, 12h14
  5. problème lors de création d'une vue
    Par gapse dans le forum Oracle
    Réponses: 7
    Dernier message: 26/07/2006, 12h59

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