Je voudrais créer une procédure stockée qui met à jour tous les champs d'une table ou seulement quelques-uns en fonction des paramètres qui lui sont transmis.
Comment créer une procédure stockée qui accepte des paramètres facultatifs?
Optional Parameters
ne sont pas encore pris en charge sur MySQL. Je suggère que vous passiez la valeur null
dans votre paramètre et à l'intérieur de votre procédure stockée a une instruction IF
.
DELIMITER $$
CREATE PROCEDURE procName
(IN param VARCHAR(25))
BEGIN
IF param IS NULL THEN
-- statements ;
ELSE commands
-- statements ;
END IF;
END$$
DELIMITER ;
Un cas particulier est lorsque le paramètre ne peut pas être NULL, c'est-à-dire parce que c'est une clé. J'utilise une astuce pour ces cas: je mets le paramètre à -1:
CREATE PROCEDURE procCreate
(IN id_cosa INT(11))
BEGIN
IF id_cosa != -1 THEN
~~(your code here)~~
END IF
END