我试图设置"默认参数值"在存储过程中。 我知道语法TYPE 1:
CREATE PROCEDURE proc_name @param nvarchar(30) = NULL, @param1 nvarchar(60) = NULL
使用mysql 5.1.35的My TOAD 7.3给出了TYPE 2的语法:当我创建新的过程时
`CREATE PROCEDURE name (param_name param_type)
for e.g: create procedure test (IN name varchar(50))
但我无法找到正确的语法来设置' IN'值
create procedure test (in name varchar(50) = null)
抛出语法错误。
请告诉我在类型2中设置默认参数的正确语法。 我为此搜索了很多内容,没有运气:\
答案 0 :(得分:1)
您无法明确这样做,但在某些情况下您可以模拟它。我刚才有一个案例,其中我想要一个默认值的参数,正在IF语句中检查。以下是我的表现方式:
在condAddNewLineTo
的正文中,我发表了if
声明。由于我的函数是有条件地返回东西,我只是将那些if语句的默认行为置于之外。像这样:
IF varToCheck = <nonDefaultValue> THEN
#some lines of code to execute
RETURN <value>;
END IF;
# default behavior here
RETURN <defaultValue>;
或者,如果不编写返回东西的存储函数,您可以执行以下操作:
IF varToCheck = <nonDefaultValue> THEN
# some lines of code to execute
ELSE
# some default code
END IF;
希望这有帮助!