sql stored proc"默认参数值"

时间:2015-06-02 07:45:55

标签: mysql sql stored-procedures toad

我试图设置"默认参数值"在存储过程中。 我知道语法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中设置默认参数的正确语法。 我为此搜索了很多内容,没有运气:\

1 个答案:

答案 0 :(得分:1)

您无法明确这样做,但在某些情况下您可以模拟它。我刚才有一个案例,其中我想要一个默认值的参数,正在IF语句中检查。以下是我的表现方式:

screenshot of the solution

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;

希望这有帮助!