在mssql中 存储过程参数的默认值可以是
  create proc p1
      @param1 varchar(20) = 'hhhh'
  as 
.......在mysql中
我这么写
  create procedure p1(in param1 varchar(20) ='0')  或者
  create procedure p1(in param1 varchar(20)  default '0')
都报错
请教正确写法

解决方案 »

  1.   

    try:
    create procedure 'test' (param1 int,param2 int)
    begin
    if isnull param2 or param2 = '' then
    set parm2 = 2;
    end if;
    end;
      

  2.   

    我查了一下好像mysql中暂时没有这样的功能
    [ IN | OUT | INOUT ] param_name type
    如果一定要用默认值的话就要在局部变量中声明
    DECLARE var_name[,...] type [DEFAULT value]
    再在sql语句中利用你局部变量的默认值吧