2012-09-29 69 views

回答

35

Optional Parameters尚未在MySQL上支持。我建議您在參數中通過null值,並且在存儲過程中有IF聲明。

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

由於Mysql現在實際上由Oracle擁有。我們不希望將來也能實施它。 –

5

一個特殊情況是,當參數不能爲NULL,即因爲是一個關鍵。我對這些情況使用了一個技巧:我將該參數設置爲-1:

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