当前位置:Gxlcms > 数据库问题 > mysql存储过程

mysql存储过程

时间:2021-07-01 10:21:17 帮助过:3人阅读

procedure if exists selectOrder; DELIMITER // CREATE DEFINER=`root`@`localhost` PROCEDURE `selectOrder`() BEGIN select * from order_h; END // call selectOrder();

技术分享

2、 带入参的存储过程创建

drop procedure if exists selectOrder;

DELIMITER //  
CREATE PROCEDURE `selectOrder`(in customer varchar(32))
BEGIN
    select * from order_h where customerid=customer;
END
//

call selectOrder(ct9);

技术分享

3、 带出参的存储过程创建

drop procedure if exists selectOrder;

DELIMITER //  
CREATE PROCEDURE `selectOrder`(out money int)
BEGIN
    select sum(summoney) into money from order_h where customerid=ct9;
END
//

call selectOrder(@money);
SELECT @money FROM DUAL;

技术分享

4、 带有入参出参的存储过程创建

drop procedure if exists selectOrder;

DELIMITER //  
CREATE PROCEDURE `selectOrder`(in customer varchar(32), out money int)
BEGIN
    select sum(summoney) into money from order_h where customerid=customer;
END
//

call selectOrder(ct1, @money);
SELECT @money FROM DUAL;

技术分享

5、 存储过程控制语句

drop procedure if exists selectOrder;

DELIMITER //  
CREATE PROCEDURE `selectOrder`(in customer varchar(32), in ismax boolean, out money int)
BEGIN
    if ismax then
        select max(summoney) into money from order_h where customerid=customer;
    else
        select min(summoney) into money from order_h where customerid=customer;
    end if;
    /**
        其他语法
        申明变量 DECLARE s int;

        while循环
        WHILE i <= n DO
            set s = s + i;
        END WHILE;
        
        case when
        CASE type
        WHEN 0 THEN
            set c = ‘false‘;
        WHEN 1 THEN
            set c = ‘true‘;
        ELSE
            set c = ‘else‘;
        END CASE;
    */
END
//

call selectOrder(ct1, false, @money);
SELECT @money FROM DUAL;

技术分享

 

mysql存储过程

标签:变量   into   cal   ase   drop   ima   arc   bool   iter   

人气教程排行