Dovresti convalidare tu stesso i valori dei parametri passati. Se stai usando MySQL 5.5 e versioni successive, puoi utilizzare SIGNAL
.
DELIMITER //
CREATE PROCEDURE my_procedure (IN param1 INT)
BEGIN
IF param1 IS NULL THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'NULL is not allowed.';
END IF;
-- do whatever
END//
DELIMITER ;
Ecco un SQLFiddle demo