在mysql存储过程中定义变量和参数时可有可无符号@,请问有@和没有@有什么区别?谢谢!

解决方案 »

  1.   

    @ 代码SESSION级变量,整个连接内可见有效。不带的则只是过程内的变量。
      

  2.   

    create procedure mypro()
    begin
    declare @temp int;
    set @temp=3;
    end //
    创建这个存储过程的时候为什么会报错呢?
      

  3.   

    declare @temp int;你不可以declare 一个 session 变量。
      

  4.   

    create procedure mypro(IN @temp int)
    begin
    select * from t where t.id>@temp;
    end//
    那请问这样创建存储过程mypro会报错又是为什么呢?(去掉@可以创建成功)