当前位置:Gxlcms > 数据库问题 > 11)-MySQL存储过程

11)-MySQL存储过程

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


  delimiter //    create procedure productpricing()    begin       select avg(prod_price) as priceaverage       from products;    end //    delimiter ;   DELIMITER//告诉命令行实用程序使用//作为新的语句结束分隔符 可以看到标志存储过程结束的END定义为END//而不是END; 这样,存储过程体内的;仍然保持不动,并且正确地传递给数据库引擎。 最后,为恢复为原来的语句分隔符,可使用DELIMITER;。   调取存储过程
 call avg_student()  #通过关键词call调取存储过程名称     # 因为存储过程实际上是一种函数,所以存储过程名后需要有()符号(即使不传递参数也需要)。

删除存储过程


 drop procedure productpricing;     这条语句删除刚创建的存储过程。请注意没有使用后面的(),只给出存储过程名。

检查存储过程

show create procedure ordertotal;   存储过程例子(1)
create procedure ordertotal(    in onumber int,          #in 用来接收用户输入    out ototal decimal(8,2)  #out用来返回用户输入 ) begin    select sum(item_price*quantity)    from orderitems    where order_num = onumber    into ototal;             #into用来接收值 end;   调取
CALL ordertotal(20005, @total);   存储过程例子(2)   create procedure ordertotal(    in onumber int,           #接收用户值    in taxable boolean,    out ototal decimal(8,2)   #返回值 ) begin    declare total decimal(8,2);     #定义局部变量    declare taxrate int default 6;   #定义局部变量    select sum(item_price*quantity)    from orderitems    where order_num = onumber    into total;     #存储值    if taxable then    #if判断       select total+(total/100*taxrate) into total;    end if;    select total into ototal; end;   调取
call ordertotal(20005, 0, @total); select @total;

11)-MySQL存储过程

标签:用户   create   rate   efault   family   bsp   结束   order   The   

人气教程排行