DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`ticketTracking_afterDelete` AFTER DELETE ON `ticketTracking` FOR EACH ROW BEGIN DECLARE vTicketFk INT; DECLARE vTicketTrackingFk INT; DECLARE vStateName VARCHAR(15); DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' BEGIN DELETE FROM vn.ticketLastState WHERE ticketFk = OLD.ticketFk; END; INSERT INTO ticketLog SET `action` = 'delete', `changedModel` = 'TicketTracking', `changedModelId` = OLD.id, `userFk` = account.myUser_getId(); SELECT i.ticketFk, i.id, s.`name` INTO vTicketFk, vTicketTrackingFk, vStateName FROM ticketTracking i JOIN state s ON i.stateFk = s.id WHERE ticketFk = OLD.ticketFk ORDER BY created DESC LIMIT 1; IF vTicketFk > 0 THEN REPLACE INTO ticketLastState(ticketFk, ticketTrackingFk,name) VALUES(vTicketFk, vTicketTrackingFk, vStateName); END IF; END$$ DELIMITER ;