zoukankan      html  css  js  c++  java
  • Mysql储存过程6: in / out / inout

    in 为向函数传送进去的值

    out 为函数向外返回的值

    intout 传送进去的值, 并且还返回这个值

        create procedure q1(in number int,out name varchar(100))
          begin
            if number > 1 then
            select 'true';
            else
            select 'false';
            end if;
          end$

    调用时:

    call q1(1, @value);

    注意, 第二个参数要为变量定义的型式。

    这个函数并没有向外发送改变后的name值, 所以调用后 select @value 为null。

    再看看out:

    mysql>     create procedure qq(number int,inout name varchar(100))
        ->       begin
        ->         if number > 1 then
        ->         select 'true';
        ->         else
        ->         select 'false';
        ->         end if;
        ->         set name=user();
        ->       end$
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> call qq(1,@as)$
    +-------+
    | false |
    +-------+
    | false |
    +-------+
    1 row in set (0.00 sec)
    
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> select @as$
    +----------------+
    | @as            |
    +----------------+
    | root@localhost |
    +----------------+
    1 row in set (0.00 sec)
    
    mysql>

    inout例子:

    mysql> create procedure qqq(inout name varchar(100))
        ->       begin
        ->         set name=database();
        ->       end$
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> call qqq(1)$
    ERROR 1414 (42000): OUT or INOUT argument 1 for routine test.qqq is not a variable or NEW pseudo-var
    iable in BEFORE trigger
    mysql> call qqq(@abc)$
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> select @abc$
    +------+
    | @abc |
    +------+
    | test |
    +------+
    1 row in set (0.00 sec)
    
    mysql>

    注意参数型式, 因为他要发送回来, 这个inout的参数型式要跟out类似, 也就是要变量定义型式: @变量名。

  • 相关阅读:
    scp命令详解
    linux下不同服务器间数据传输(rcp,scp,rsync,ftp,sftp,lftp,wget,curl)
    详解代理自动配置 PAC
    linux卸载
    VMware里克隆出来的CentOS Linux device eth0 does not seem to be present, delaying initialization
    CentOS系统更换软件安装源yum
    kali开启禁止或删除ssh 开机启动
    7天玩转 ASP.NET MVC
    C#高级编程42章 MVC
    C#高级编程(32章)ADO.net
  • 原文地址:https://www.cnblogs.com/perl6/p/7114726.html
Copyright © 2011-2022 走看看