存储过程,是在大型数据库系统中,为完成某一特定功能的sql语句集(类似于自定义函数),保存在数据库中,
使用时,通过指令call调用存储过程的名称并传递参数,经过一次预编译以后使用时,不需要再编译,
一、简单的存储过程
-- 创建存储过程 create procedure proc_p1() begin select * from v1; end -- 调用存储过程 call proc_p1();
二、带参数的存储过程
-- 创建存储过程 drop procedure if EXISTS proc_p1; create procedure proc_p1(in i1 int) begin declare d1 int; declare d2 int default 3; set d1 = i1+d2; select * from v1 where nid>d1; end -- 调用存储过程 call proc_p1(2);
注意:
1、存储过程的修改很麻烦,通常都是直接删除、重写,使用语句:drop procedure if EXISTS ……
2、存储过程涉及的关键字:in、declare、set、call等,
3、如上语句在某些终端上无法执行,因为sql语句是默认以分号为结束的,begin…end中的分号会影响代码,
在实际应用中,会在存储过程的开始和结束,都进行delimiter声明,指定结束标志,具体如下:
-- 创建存储过程 delimiter $$ drop procedure if EXISTS proc_p1 $$ create procedure proc_p1(in i1 int) begin declare d1 int; declare d2 int default 3; set d1 = i1+d2; select * from v1 where nid>d1; end $$ delimiter ;
浙公网安备 33010602011771号