テーブル内のすべてのフィールド、または渡されたパラメータに応じて一部のフィールドを更新するストアドプロシージャを作成したいと思います。
オプションのパラメータを受け入れるストアドプロシージャを作成するにはどうすればよいですか?
テーブル内のすべてのフィールド、または渡されたパラメータに応じて一部のフィールドを更新するストアドプロシージャを作成したいと思います。
オプションのパラメータを受け入れるストアドプロシージャを作成するにはどうすればよいですか?
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 ;
特殊なケースは、パラメーターが NULL にならない場合です。つまり、 がキーであるためです。これらの場合にはトリックを使用します。パラメーターを-1に設定します。
CREATE PROCEDURE procCreate
(IN id_cosa INT(11))
BEGIN
IF id_cosa != -1 THEN
~~(your code here)~~
END IF
END