存储过程基本语法
create procedure procedure_name [;number]
[{@parameter data_type}[varying][=default][output]]
1.只返回单一记录集合的存储过程
drop Procedure if EXISTS proc_adder;-- 如果存在该存储过程即删除存储过程
CREATE PROCEDURE proc_adder() -- 创建存储过程
BEGIN
select * from base_card; -- 执行sql语句
END
call proc_adder --执行存储过程
2.含有输入输出参数
DROP PROCEDURE IF EXISTS proc_adder;
CREATE PROCEDURE proc_adder(IN a varchar(256),OUT card_id int)
BEGIN
select * from base_card where card_no = a;
set card_id = a;
END
set @a = '20170720';
call proc_adder(@a,@card_id);
select @card_id;
运行函数得到的结果如下:
可以通过两种途径执行存储过程:
1.通过call方法。
2.通过界面运行存储过程,直接输入参数
3存储过程中的控制语句
drop procedure if exists proc_if;
create procedure proc_if (in sum int)
begin
declare c varchar(500);
if sum >=100 then
set c = 'good';
elseif sum< 100 THEN
set c ='well';
else
set c = 'come on';
end if;
select c;
end
call proc_if(99)