DELIMITER $$ CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticketRefund_beforeUpsert`(vRefundTicketFk INT, vOriginalTicketFk INT) BEGIN DECLARE vAlreadyExists BOOLEAN DEFAULT FALSE; IF vRefundTicketFk = vOriginalTicketFk THEN CALL util.throw('Original ticket and refund ticket has same id'); END IF; SELECT COUNT(*) INTO vAlreadyExists FROM ticketRefund WHERE refundTicketFk = vOriginalTicketFk; IF vAlreadyExists > 0 THEN CALL util.throw('This ticket is already a refund'); END IF; END$$ DELIMITER ;