You have to change the delimiter you use, otherwise MySQL treats the ;
as the end of the line and processes the commands.  When I tried to
run your trigger (with the standard delimiter of ;) I got:

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 'update trans set trans_status=NEW.trans_status,
trans_state=NEW.trans_state
wher' at line 5
mysql> END IF;
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 'END IF' at line 1
mysql> END;
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 'END' at line 1

(Had you posted the actual error code, it would have been much nicer).

So, yeah, you need to set the delimiter.

-Sheeri

On 5/18/06, Frederic Belleudy <[EMAIL PROTECTED]> wrote:
Hi all!
server version: 5.0.18

I attempted to create a trigger with statement and update, it does like
this:
CREATE TRIGGER update_trans AFTER UPDATE ON main_trans
FOR EACH ROW
BEGIN
IF OLD.trans_status='INITIAL' and OLD.trans_state='INITIAL' THEN
 update trans set trans_status=NEW.trans_status, trans_state=NEW.trans_state
where main_trans_id=NEW.main_trans_id;
END IF;
END;

I 'm getting an error after : update trans set ...........
I tried to insert BEGIN update trans set ...... END

Note that I'm creating the trigger directly in phpmyadmin, I already created
succesfully a trigger but it was really a simple one...
I did try the delimiter "$$" or any other delimiter of my choice, but it
doesn't accept the DELIMITER declaration before my create trigger....

Nothing works.... Any tips!? Is that possible to do this kind of trigger!?

Tks for your answers, I appreciate!!



--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to