[Résolu]Pb trigger Mysql

Pb trigger Mysql [Résolu] - SQL/NoSQL - Programmation

Marsh Posté le 02-07-2009 à 09:53:28    

Bonjour,
 
Je cherche à creer un trigger ton con sous mysql, ce que je n'ai encore jamais fais avec mysql et je me confronte à un probleme à la con.
 
Je cherche inserer dans une table, certaines données de la table mise à jour si la colonne alea_stat a été modifiée :
 

Code :
  1. CREATE trigger histo_statut_alea AFTER UPDATE ON tbl_alea
  2. FOR EACH ROW 
  3. IF NEW.alea_stat != OLD.alea_stat THEN
  4. INSERT INTO tbl_asta( `asta_alea_id` , `asta_usem` , `asta_datm` , `asta_alea_stat` ) VALUES (NEW.alea_id, NEW.alea_usem,NEW.alea_datm, NEW.alea_stat)
  5. END IF


 
Et je me tape toujours une erreur :
#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 tbl_asta( `asta_alea_id` , `asta_usem` , `asta_datm` , `asta_alea_st' at line 3
 
Si j'enleve le if, ça marche impec :/
 
Une idée?


Message édité par Alisteroid le 03-07-2009 à 13:32:36
Reply

Marsh Posté le 02-07-2009 à 09:53:28   

Reply

Marsh Posté le 02-07-2009 à 10:14:10    

C'est pas le "!=" qu'il n'aime pas ?

Reply

Marsh Posté le 02-07-2009 à 10:23:00    

Non si je met '=' ça me sort la même erreur.

Reply

Marsh Posté le 02-07-2009 à 10:28:23    

Il n'y a pas besoin de mettre BEGIN/END après ton FOR EACH ROW ?

Reply

Marsh Posté le 02-07-2009 à 10:37:53    

Non il me semble pas

Reply

Marsh Posté le 02-07-2009 à 15:33:48    

Pb réglé c'était un pb de délimiteur, faut le changer dans phpmyadmin en bas de l'onglet SQL, remplacer ';' par un autre caractère ce qui donne:
 
Delimiter #

Code :
  1. CREATE trigger histo_statut_alea AFTER UPDATE ON tbl_alea
  2. FOR EACH ROW
  3. IF NEW.alea_stat != OLD.alea_stat THEN
  4. INSERT INTO tbl_asta( `asta_alea_id` , `asta_usem` , `asta_datm` , `asta_alea_stat` ) VALUES (NEW.alea_id, NEW.alea_usem,NEW.alea_datm, NEW.alea_stat);
  5. END IF;
  6. #

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed