2012-09-29 3 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 
関連する問題