zoukankan      html  css  js  c++  java
  • MySQL 存储过程参数IN OUT INOUT区别

    MySQL 存储过程参数IN OUT INOUT对比

    一、IN

    -- 创建测试存储过程
    
    delimiter //
    create procedure p_in ( IN num int )
    begin
        select num;
        set num=100;
        select num;
    end;
    //
    delimiter ;
    
    set @num=100;
    call p_in(@num)

    二、OUT

    -- 创建测试存储过程
    
    delimiter //
    create procedure p_out ( OUT num int )
    begin
        select num;
        set num=100;
        select num;
    end;
    //
    
    delimiter ;
    
    set @num=100;
    call p_out(@num)

    三、INOUT

    -- 创建测试存储过程
    
    delimiter //
    create procedure p_inout ( INOUT num int )
    begin
        select num;
        set num=100;
        select num;
    end;
    //
    delimiter ;
    
    set @num=100;
    call p_inout(@num)

     总结:

    IN 输入参数

    表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值

    仅需要将数据传入存储过程,并不需要返回计算后的该值。

    只能当做传入参数

    OUT 输出参数

    该值可在存储过程内部被改变,并可返回

    不接受外部传入的数据,仅返回计算之后的值。

    只能当做转出参数

    INOUT 输入输出参数

    调用时指定,并且可被改变和返回

    需要数据传入存储过程经过调用计算后,再传出返回值

    可当做传入转出参数

  • 相关阅读:
    java面试的那些事
    java多线程实现复制大文件
    java心跳发送
    Java实现缓存(LRU,FIFO)
    java并发阻塞队列
    java之路
    Intellij IDEA中使用Protobuf的正确姿势
    Flink JobManager HA模式部署(基于Standalone)
    查看Flink的Job Graph时的问题
    Flink从Kafka 0.8中读取多个Topic时的问题
  • 原文地址:https://www.cnblogs.com/weibanggang/p/9664709.html
Copyright © 2011-2022 走看看