mysql - 存储过程的入门
访问量: 2103
存储过程, stored procedure, 第一次听说是在2006年,第一个项目中, 当时的甲方老板跟我侃侃而谈,说到了这个东西.
可惜的是,这是一个死掉的技术. 过去十一年,我从来没有在项目中使用过.
之前存储过程是个比较高级的特性, 据说是性能好. 但是现在mysql也支持了.
跟View(视图), Table( 表) 一样, 存储过程 也是一个"基本元素", 从 mysql workbench中就可以看出来:
下面, 我们就看一下 上面的 proc_adder 是如何建立的( proc_ 这个前缀貌似很多人都喜欢用)
CREATE DEFINER=`root`@`localhost` PROCEDURE `proc_adder`(in a int, in b int, out sum int) begin declare c int; if a is null then set a = 0; end if; if b is null then set b = 0; end if; set sum = a + b; end
在mysql控制台中 输入这段代码, 然后执行,就会发现这个 存储过程已经被建立了.
然后我们来调用它:
set @a = 6; call proc_adder(2, @a, @result); select @result as my_result;
执行上面的语句,就可以得到结果:
# | my_result
1 | 8
另一个存储过程的例子:
create procedure procedureName( out min decimal(8,2), out avg decimal(8,2), out max decimal(8,2) ) BEGIN select MIN(price) INTO min from order; select AVG(price) into avg from order; select MAX(price) into max from order; END;