Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
533 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu][Trigger] mise a jour d'un champ lors de l'uptate d'un autre

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu][Trigger] mise a jour d'un champ lors de l'uptate d'un autre

n°1935439
johnson950
Posté le 26-10-2009 à 15:44:00  profilanswer
 

Bonjour,
 
Je ma lance actuellement dans les "triggers" (soyez indulgent, il s'agit du premier que je crée).
 
Je possède une table qui comporte trois champs.
 
Table : test
nom des champs : id / visible / date
 
Mon but est de créer un trigger qui lorsque l'on place visible sur 1, il fasse une mise a jour de la date en y insérant la date actuelle.
 
Voici mon code erronée :
 

Code :
  1. DELIMITER ^
  2. CREATE TRIGGER UPDATE AFTER UPDATE ON test FOR EACH ROW
  3. begin
  4.   IF (NEW.etat=='1') then NEW.date=CURRENT_TIMESTAMP;
  5.   end IF;
  6. end^
  7. DELIMITER ;


 
Pourriez vous m'aider ?
Merci


Message édité par johnson950 le 26-10-2009 à 17:15:43
mood
Publicité
Posté le 26-10-2009 à 15:44:00  profilanswer
 

n°1935451
cgo2
Dum spiro spero
Posté le 26-10-2009 à 15:59:34  profilanswer
 

Peut-être parce que tu veux nommer ton trigger "update" et que ça lui plait pas ?
 
Sinon qu'est-ce qu'il a d'erroné en fait ? Il y a un message d'erreur ?


---------------
When it's from Finland it's good.  - Mon blog
n°1935455
johnson950
Posté le 26-10-2009 à 16:09:37  profilanswer
 

Merci pour ta réponse, j'ai changé le nom de la fonction en "test".
Même erreur : ERROR 1064 (42000): 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 '== 1) then NEW.DATE=CURRENT_TIMESTAMP;

n°1935462
cgo2
Dum spiro spero
Posté le 26-10-2009 à 16:16:49  profilanswer
 

Il n'y a pas de parenthèse autour de la condition du IF. Et l'opérateur de comparaison d'égalité est un simple "=".


Message édité par cgo2 le 26-10-2009 à 16:17:06

---------------
When it's from Finland it's good.  - Mon blog
n°1935463
johnson950
Posté le 26-10-2009 à 16:20:14  profilanswer
 

Merci pour ta réponse.
Cependant je crois qu'il n'apprécie pas le "CURRENT_TIMESTAMP"
 
Nouvelle erreur : ERROR 1064 (42000): 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 '.date=CURRENT_TIMESTAMP.
 
Une idée ?
Merci

n°1935468
cgo2
Dum spiro spero
Posté le 26-10-2009 à 16:29:32  profilanswer
 

Euh là pour CURRENT_TIMESTAMP je sais pas (essaye d'utiliser une fonction plutôt que cette variable), je crois que le problème c'est surtout qu'il faut utiliser "SET truc = bidule" et pas directement "truc = bidule".
En plus si tu veux modifier la ligne NEW, il faut que ton trigger soit en BEFORE UPDATE et non AFTER UPDATE.
 
Tu ferais quand même bien de lire la doc de MySQL, parce que toutes ces réponses s'y trouvent hein...


---------------
When it's from Finland it's good.  - Mon blog
n°1935488
johnson950
Posté le 26-10-2009 à 17:14:42  profilanswer
 

Merci pour le coup de main !
 

Code :
  1. DELIMITER ^
  2. CREATE TRIGGER test1 BEFORE UPDATE ON test FOR EACH ROW
  3. begin
  4.   DECLARE temp DATE;
  5.   SET temp=current_timestamp;
  6.   if NEW.etat='1' then SET NEW.date=temp;
  7.   end if;
  8. end^
  9. DELIMITER ;


Message édité par johnson950 le 26-10-2009 à 17:16:34
n°1935499
cgo2
Dum spiro spero
Posté le 26-10-2009 à 17:42:13  profilanswer
 

Sérieusement t'es obligé de passer par une variable temporaire ? "SET NEW.date = CURRENT_TIMESTAMP" ça marche pas ?
Sinon t'as essayé avec une fonction : http://dev.mysql.com/doc/refman/5. [...] tions.html ? Genre "SET NEW.date = NOW()" ça marche pas non plus ?


Message édité par cgo2 le 26-10-2009 à 17:43:44

---------------
When it's from Finland it's good.  - Mon blog

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu][Trigger] mise a jour d'un champ lors de l'uptate d'un autre

 

Sujets relatifs
[Resolu][SOAP][PHP] Utilisation des paramètresMise en forme conditionnelle dans Excel
[RESOLU]Plusieurs requetes SQL en une seul sous forme de tableau[PHP] Include. Problème de mise en place.
[RESOLU]Modifier la mise en forme selon onClick[Résolu] JBoss et Virtual Host
[JS] modification d'un champ dans popProblème:boite de dialogue alert() avec chrome+safari - [Résolu]
[php/mysql] lancer un programme php en cas d'updates de MySql [resolu] 
Plus de sujets relatifs à : [Résolu][Trigger] mise a jour d'un champ lors de l'uptate d'un autre


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR