认识
说明
- mysql存储过程可以封装SQL与剧集,用于处理一些比较复杂的业务逻辑
通常情况下,执行SQL语句时,是一条一条执行的,一般复杂的逻辑是使用java代码来实现的
优点
将部分业务逻辑与java代码分开
- 先编译再保存,效率会高于单独一条一条执行
-
缺点
面向过程面层,复杂的业务逻辑维护成本更高
- 调试不方便
-
基本指令
自定义语句结束符
DELIMITER $$
create procedure 存储过程名(参数)
CREATE PROCEFURE
([IN|OUT|INOUT] ) -
开始存储过程
-
结束存储过程
-
系统变量定义
DECLARE
default 定义的变量不能等同于入参的量,入参的相当于是常量,如果要在赋值中使用,应该用select来获取它的返回值
update system_organization set parent_id = (select parentId)
用户变量定义
定义即赋值
等同于入参时的量,可以在赋值中使用
SET @form_id = (SELECT id FROM system_form WHERE long_desc = form_name);变量赋值
-
调用存储过程
call sp_name[参数]
