DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `vn`.`deviceProductionUser_beforeInsert` BEFORE INSERT ON `deviceProductionUser` FOR EACH ROW BEGIN DECLARE vHasPda BOOLEAN; DECLARE visFreelancer BOOLEAN; DECLARE vUserName VARCHAR(50); SELECT COUNT(*) INTO vHasPda FROM deviceProductionUser WHERE userFk = NEW.userFk; SELECT name INTO vUserName FROM account.user WHERE id = NEW.userFk; SELECT account.user_hasRoleId(vUserName, (SELECT id FROM role WHERE name = 'freelancer')) INTO vIsFreelancer; IF NOT vIsFreelancer AND vHasPda THEN CALL util.throw('You can only have one PDA'); ELSE SET NEW.editorFk = account.myUser_getId(); END IF; END$$ DELIMITER ;