Vous devrez valider vous-même les valeurs des paramètres passés. Si vous utilisez MySQL 5.5 et plus, vous pouvez utiliser 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 ;
Voici un SQLFiddle démo