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 :

MYSQL - test modification colonne dans trigger


Sujet :

SQL Procédural MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Points : 10
    Points
    10
    Par défaut MYSQL - test modification colonne dans trigger
    Bonjour,

    Je bute encore sur un trigger.
    J'ai un trigger qui met à jour la date de modification du profil utilisateur lorsque celui ci met à jour son profil. Jusque là tout va bien. sauf que j'ai un champ nbcnx qui est incrémenté à chaque fois que celui-ci se connecte.
    Du coup, à chaque fois qu'il se connecte la date de mise à jour du profil change aussi: pas top donc.

    Etant donné que la gestion de la date de modification du profil par un trigger est une contrainte qui m'a été imposée je dois faire évoluer mon trigger initial pour en gros 'lui dire':

    SI la colonne NBCNX est modifiée ne pas faire l'update de la date de modification profil
    SINON
    Update de la date de modif.
    J'ai donc essayé ce trigger ainsi que plusieurs variantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DELIMITER ;;
    CREATE TRIGGER updateprof BEFORE UPDATE ON users
     FOR EACH ROW
     BEGIN
    	IF UPDATE (nbcnx) THEN
    		RETURN 'dateactu pas maj';
    	ELSE
    		SET NEW.date_update = now();
    		 END IF;
     END;;
    Mais MYSQL m'affiche une erreur de syntaxe que je peine à comprendre et donc à corriger:
    #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 (nbcnx) THEN RETURN 'dateactu pas maj'; ELSE SET NEW.date_update ' at line 4
    J'aimerais donc savoir ce qui ne va pas et si le traitement que je souhaite réaliser via ce trigger reste possible.

    Par avance, merci.

    Cordialement.

  2. #2
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 902
    Points : 6 026
    Points
    6 026
    Par défaut
    Cette syntaxe existe ?

    Pourquoi de pas coder avec OLD et NEW ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF OLD.nbcnx = NEW.nbcnx THEN
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Merci pour votre aide. Après avoir revu les conditions de mon trigger ci-dessus et en suivant votre piste ça marche beaucoup mieux.

    Merci beaucoup.

    Pour répondre à votre question, je suis plus habitué à travaillerr avec des triggers sous SQL SERVER que sous MYSQL. D'où la confusion syntaxique.

    Cordialement.

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

Discussions similaires

  1. Modifs multiples dans trigger
    Par casta15 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/01/2012, 09h21
  2. Mysql : Ajouter une "colonne" dans un resultat
    Par Mimie77 dans le forum Requêtes
    Réponses: 1
    Dernier message: 11/01/2011, 17h08
  3. [MySQL] mysql copier une colonne dans une autre table
    Par runcafre91 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/02/2010, 08h56
  4. Vérifier l'existance d'une colonne dans une table MySQL
    Par )3lade dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 18/04/2006, 11h46
  5. Changements de colonnes dans une BDD MySQL
    Par arnaud_verlaine dans le forum Requêtes
    Réponses: 8
    Dernier message: 07/08/2003, 11h33

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