DELIMITER $$CREATEPROCEDURE AddOrderItem(in orderNo int,in productCode varchar(45),in qty int,in price double, in lineNo int )BEGINDECLARE C INT;SELECTCOUNT(orderNumber) INTO CFROM orders WHERE orderNumber = orderNo;-- check if orderNumber existsIF(C !=1) THEN SIGNAL SQLSTATE '45000'SET MESSAGE_TEXT ='Order No not found in orders table';ENDIF;-- more code below-- ...END $$DELIMITER ;
mysql> CALL AddOrderItem(10,'S10_1678',1,95.7,1);
1644 - Order No not found in orders table
DELIMITER $$
CREATE PROCEDURE Divide(IN numerator INT, IN denominator INT, OUT result double)
BEGIN
DECLARE division_by_zero CONDITION FOR SQLSTATE '22012';
DECLARE CONTINUE HANDLER FOR division_by_zero
RESIGNAL SET MESSAGE_TEXT = 'Division by zero / Denominator cannot be zero';
--
IF denominator = 0 THEN
SIGNAL division_by_zero;
ELSE
SET result := numerator / denominator;
END IF;
END $$
DELIMITER ;
CALL Divide(10,0,@result);
mysql> CALL Divide(10,0,@result);
1644 - Division by zero / Denominator cannot be zero