• 技术文章 >数据库 >mysql教程

    MySQL存储过程传参之in,out,inout参数用法_MySQL

    2016-06-01 13:04:04原创928
    存储过程传参:存储过程的括号里,可以声明参数。 语法是 create procedure p([in/out/inout] 参数名 参数类型 ..) in :给参数传入值,定义的参数就得到了值 out:模式定义的参数只能在过程体内部赋值,表示该参数可以将某个值传递回调用他的过程(在存储过程内部,该参数初始值为 null,无论调用者是否给存储过程参数设置值) inout:调用者还可以通过 inout 参数传递值给存储过程,也可以从存储过程内部传值给调用者
    如果仅仅想把数据传给 MySQL 存储过程,那就使用“in” 类型参数; 如果仅仅从 MySQL 存储过程返回值,那就使用“out” 类型参数; 如果需要把数据传给 MySQL 存储过程,还要经过一些计算后再传回给我们,此时,要使用“inout” 类型参数。 MySQL 存储过程参数如果不显式指定"in"、"out"、"inout",则默认为"in"。
    实例一:存储过程传参 in
    DELIMITER $$
    CREATE PROCEDURE p1(IN num INT)
    BEGIN
      DECLARE i INT DEFAULT 0;
      DECLARE total INT DEFAULT 0;
      WHILE i<=num DO
        SET total := i + total;
        SET i := i+1;
      END WHILE;
      SELECT total;
    END$$
    \

    实例二:存储过程传参 out
    CREATE PROCEDURE p2(OUT num INT)
    BEGIN
     SELECT num AS num_1;
     IF (num IS NOT NULL) THEN
     SET num = num + 1;
     SELECT num AS num_2;
     ELSE
     SELECT 1 INTO num;
     END IF;
     SELECT num AS num_3;
    END$$
    SET @num = 10$$
    CALL p2(@num)$$
    SELECT @num AS num_out$$
    \

    实例三:存储过程传参 inout
    CREATE PROCEDURE p3(INOUT age INT)
    BEGIN
      SET age := age + 20;
    END$$
    set @currage =18$$
    call p3(@currage)$$
    select @currage$$
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:参数 过程
    上一篇:mysql点滴_02程序中执行sql语句报字符集问题解决_MySQL 下一篇:PowerDesigner中导入MYSQL数据库结构的步骤及问题解决_MySQL

    相关文章推荐

    • mysql怎样修改用户• 如何解决ubuntu mysql 乱码问题• mysql存储过程怎样变量赋值• centos中rpm怎样安装mysql• 怎样使MySQL的索引更高效?

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网