DELIMITER $$ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeInsert` BEFORE INSERT ON `roadmap` FOR EACH ROW BEGIN SET NEW.editorFk = account.myUser_getId(); IF NEW.name IS NOT NULL THEN SET NEW.name = UCASE(NEW.name); END IF; IF NEW.trailerPlate IS NOT NULL OR NEW.tugPlate IS NOT NULL THEN SET NEW.m3 = (SELECT SUM(m3) FROM vehicle WHERE numberPlate IN (NEW.trailerPlate, NEW.tugPlate)); END IF; IF NEW.driver1Fk IS NOT NULL THEN SET NEW.driverName = (SELECT CONCAT(w.firstName, ' ', w.lastName) FROM worker w WHERE w.id = NEW.driver1Fk); SET NEW.phone = (SELECT COALESCE(w.phone, c.mobile, c.phone, c.mobile) FROM worker w LEFT JOIN client c ON c.id = w.id WHERE w.id = NEW.driver1Fk); END IF; IF NEW.driverChangeFk IS NOT NULL THEN SET NEW.driverChangeName = (SELECT CONCAT(w.firstName, ' ', w.lastName) FROM worker w WHERE w.id = NEW.driverChangeFk); END IF; END$$ DELIMITER ;