use*_*747 36 mysql stored-procedures
我想创建一个存储过程,它根据传递给它的参数更新表中的所有字段或只更新其中的一些字段.
如何创建接受可选参数的存储过程?
Joh*_*Woo 47
Optional ParametersMySQL尚不支持.我建议您null在参数中传递值,并在存储过程内部有一个IF语句.
DELIMITER $$
CREATE PROCEDURE procName
(IN param VARCHAR(25))
BEGIN
IF param IS NULL THEN
-- statements ;
ELSE commands
-- statements ;
END IF;
END$$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
小智 6
一个特殊情况是当参数不能为 NULL 时,即因为是一个键。我对这些情况使用了一个技巧:我将参数设置为 -1:
CREATE PROCEDURE procCreate
(IN id_cosa INT(11))
BEGIN
IF id_cosa != -1 THEN
~~(your code here)~~
END IF
END
Run Code Online (Sandbox Code Playgroud)