You forgot to change the delimiter, so MySQL considers your first statement:
CREATE TRIGGER `trg_part_upd` AFTER UPDATE ON `tbl_sub_model_eng_trans_part` FOR EACH ROW if NEW.engine_sk = 0 and NEW.trans_sk = 0 then UPDATE tbl_sub_model tsm INNER JOIN tbl_fct_sub_eng_trans tfset ON tsm.sub_model_sk = tfset.sub_model_sk INNER JOIN tbl_sub_model_eng_trans_part tsmetp ON tfset.trans_sk = tsmetp.trans_sk SET tsm.last_modified_date = NOW() WHERE tsmetp.sub_model_sk=NEW.sub_model_sk;
Just add this before the code:
DELIMITER $$
... and then this:
$$
... so MySQL can recognize the full trigger as a single statement.
You can change $$ as you wish.
White papers provide details on this in the Defining Saved Programs section.
source share