(2011-12-11 旧博文搬运)创建Mysql过程与函数

Mysql储存过程(procedure)与函数(function)是一种封装某种功能到数据库的好办法。可以将某个功能(比如查询最大值或简单的计算)保存到数据库中,这样可以在不同的平台上完成相同的工作。

创建储存过程的mysql语句:

delimiter //意思是将mysql默认的分号断句改为//号断句,当出现分号时mysql不会以为已经结束

create procedure avg_price(out avgprice float) BEGIN SELECT AVG(price) INTO avgprice FROM table_price; END //

delimiter ; 将分隔符重新换回分号

 

如果不使用命令行直接在phpmyadmin里面输入sql的话,可以不用输入delimiter语句

 

使用这个过程:

call avg_price(@p);

SELECT @p;

结果如下图

/*********************************************************************************/

创建函数:

delimiter //create function caculate_tax(price float)returns float BEGIN declare tax float default 0.05; return price * tax ; END //delimiter ;

这个就和普通的函数差不多了,BEGIN和END就相当于花括号和花括号回头、declare相当于var,是用来创建一个临时变量的。

【如果你在创建函数的过程中遇到这样的提示#1418 – This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable),

那么你需要先输入这样的SQL语句:

SET GLOBAL log_bin_trust_function_creators = 1;】

使用函数比较简单:

SELECT caculate_tax(3000);

如果消费税为0.05,可以算出3000元的东西需要收多少税:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值