33 lines
894 B
SQL
33 lines
894 B
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`ticketTracking_afterUpdate`
|
|
AFTER UPDATE ON `ticketTracking`
|
|
FOR EACH ROW
|
|
BEGIN
|
|
DECLARE vTicketFk INT;
|
|
DECLARE vTicketTrackingFk INT;
|
|
DECLARE vStateName VARCHAR(15);
|
|
|
|
IF NEW.stateFk <> OLD.stateFk THEN
|
|
REPLACE vn.ticketLastState(ticketFk, ticketTrackingFk, name)
|
|
SELECT NEW.ticketFk, NEW.id, `name`
|
|
FROM state
|
|
WHERE id = NEW.stateFk;
|
|
END IF;
|
|
|
|
IF NEW.ticketFk <> OLD.ticketFk THEN
|
|
SELECT i.ticketFk, i.id, s.`name`
|
|
INTO vTicketFk, vTicketTrackingFk, vStateName
|
|
FROM ticketTracking i
|
|
JOIN state s ON i.stateFk = s.id
|
|
WHERE ticketFk = NEW.ticketFk
|
|
ORDER BY created DESC
|
|
LIMIT 1;
|
|
|
|
IF vTicketFk > 0 THEN
|
|
REPLACE INTO ticketLastState(ticketFk, ticketTrackingFk,name)
|
|
VALUES(vTicketFk, vTicketTrackingFk, vStateName);
|
|
END IF;
|
|
END IF;
|
|
END$$
|
|
DELIMITER ;
|