2012-09-29 16 views

Respuesta

35

Optional Parameters aún no son compatibles con MySQL. Estoy sugiriendo que pase el valor null en su parámetro y dentro de su procedimiento almacenado tenga una declaración IF.

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

Como Mysql ahora es prácticamente propiedad de Oracle. No esperamos implementarlo en el futuro también. –

5

Un caso especial es cuando el parámetro no puede ser NULO, es decir, porque es una clave. Utilizo un truco para estos casos: establezco el parámetro en -1:

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