Scrivere parametri opzionali all’interno di stored procedure in MySQL?

Vorrei creare una stored procedure che aggiorna tutti i campi in una tabella o solo alcuni di essi in base ai parametri passati ad essa.

Come posso creare una stored procedure che accetta parametri opzionali?

Optional Parameters non sono ancora supportati su MySQL. Sto suggerendo di passare il valore null nel parametro e all’interno della stored procedure c’è un’istruzione IF .

 DELIMITER $$ CREATE PROCEDURE procName (IN param VARCHAR(25)) BEGIN IF param IS NULL THEN -- statements ; ELSE commands -- statements ; END IF; END$$ DELIMITER ; 

Un caso speciale è quando il parametro non può essere NULL, cioè perché è una chiave. Io uso un trucco per questi casi: ho impostato il parametro su -1:

 CREATE PROCEDURE procCreate (IN id_cosa INT(11)) BEGIN IF id_cosa != -1 THEN ~~(your code here)~~ END IF END