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;

  • 相关阅读:
    多校 4686 Arc of Dream hdu 矩阵解
    关于wind7重新安装系统后,连接mysql的问题
    hadoop学习之ZooKeeper
    viewDidLoad、viewDidUnload、viewWillAppear、viewDidAppear、viewWillDisappear 和 -viewDidDisappear的区别和使用
    python处理中文字符
    linux配置本地tomcat应用80端口转发
    基于JVM规范的并发编程解决方案
    poj 3211 Washing Clothes(背包)
    hdu 4687 带花树匹配
    SQLiteLog (1) no such Column:
  • 原文地址:https://www.cnblogs.com/wang666/p/7920748.html
Copyright © 2011-2022 走看看