DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`postCode_afterUpdate` AFTER UPDATE ON `postCode` FOR EACH ROW BEGIN IF !(OLD.townFk <=> NEW.townFk) THEN CALL zoneGeo_setParent(NEW.geoFk, (SELECT geoFk FROM town WHERE id = NEW.townFk)); END IF; IF !(OLD.`code` <=> NEW.`code`) THEN UPDATE zoneGeo SET `name` = NEW.`code` WHERE id = NEW.geoFk; END IF; END$$ DELIMITER ;