zoukankan      html  css  js  c++  java
  • mysql_存储过程

    创建存储过程

    创建一个简单的存储过程

    CREATE PROCEDURE mypro()
    BEGIN
    SELECT * FROM products;
    END;

    调用存储过程

    CALL mypro()

    删除存储过程

    DROP PROCEDURE IF EXISTS mypro

    下面。创建带参数的存储过程,just like function

    CREATE PROCEDURE newpro(
        OUT min DECIMAL(8,2),
        OUT avg DECIMAL(8,2),
        OUT max DECIMAL(8,2)
    )
    BEGIN
        SELECT MIN(item_price) INTO min FROM orderitems;
    SELECT avg(item_price) INTO avg FROM orderitems;
    SELECT max(item_price) INTO max FROM orderitems;
    
    END;

    调用

    CALL newpro(@最小,@平均,@最大);
    SELECT @最小,@平均,@最大;

    得到

    -----------------------------------------

    带参数in的存储过程

    CREATE PROCEDURE newproin(
        IN pro_id int,
        OUT min DECIMAL(8,2),
        OUT avg DECIMAL(8,2),
        OUT max DECIMAL(8,2)
    )
    BEGIN    
        SELECT MIN(item_price) FROM orderitems WHERE orderitems.order_item=pro_id INTO min;
        SELECT avg(item_price) FROM orderitems WHERE orderitems.order_item=pro_id INTO avg ;
        SELECT max(item_price) FROM orderitems WHERE orderitems.order_item=pro_id INTO max;
    END;
    View Code

    调用过程

    CALL newproin(4,@最小,@平均,@最大);
    SELECT @最小,@平均,@最大;

    --------------------------------------------

    过程中间再复杂点

    CREATE PROCEDURE propro(
        IN pro_id int,--传递进来的商品id
        IN flag boolean,--是否需要加税
        OUT pricetotal DECIMAL(8,2)--返回出去的值
    )
    BEGIN    
        DECLARE temprice DECIMAL(8,2);--函数内部变量
        DECLARE rate int DEFAULT 7;--内部变量税率,千分之七
    
        SELECT SUM(item_price)FROM orderitems WHERE orderitems.order_item=pro_id INTO temprice;--总价into到内部变量中
        IF flag THEN--判断是否加税
            SELECT temprice+(temprice*(rate*0.001)) INTO temprice;
        END IF;
        SELECT temprice INTO pricetotal;--内部变量into到返回出去的变量中
    END;

    调用依然很简单

    CALL propro(3,FALSE,@totalprice);
    SELECT @totalprice;

  • 相关阅读:
    湾区求职分享:三个月刷题拿到 Google offer,欢迎踊跃提问
    【转】关于写书
    【转】真相
    【转】成都的雾霾
    【转】iPhone X
    【转】网络用语
    【转】AlphaGo Zero 和强人工智能
    【转】理性的力量
    【转】旅行的智慧
    【转】我为什么爱猫
  • 原文地址:https://www.cnblogs.com/wang666/p/7920748.html
Copyright © 2011-2022 走看看