MySQL存储过程
创建存储过程(不带参)
DELIMITER$
CREATE PROCEDURE initData()
-- 此处放置要执行的语句
select 1 from dual;
BEGIN
END$
创建存储过程(带参)
DELIMITER$
create procedure initData(in in_param int)
-- 此处放置要执行的语句
select 1 from dual;
BEGIN
END$
查看创建过程
show create procedure initData;
查看数据库存储过程
show create procedure initData;
调用存储过程
-- 不带参数
CALL initData();
-- 带参数
set @in_param=1;
call initData(@in_param);
删除存储过程
drop procedure initData;
游标的使用
-- 定义变量
DECLARE idx int DEFAULT 0;
DECLARE temp_id varchar(64);
DECLARE temp_name varchar(64);
DECLARE temp_age varchar(64);
-- 定义游标
DECLARE cur CURSOR FOR select id, name, age from table_name;
-- 设置没有数据返回时的标志
DECLARE CONTINUE HANDLER FOR NOT FOUND SET idx = 1;
-- 遍历游标
open cur;
while idx <> 1
do
fetch report temp_id,temp_name ,temp_age ;
if idx <> 1 then -- 防止循环多执行一次
set process_id = (select replace(lower(uuid()), '-', ''));
-- 执行业务逻辑
end if;
end while;
-- 关闭游标
close cur ;
IF条件判断
IF
temp_type = '1'
THEN
-- 执行业务逻辑
ELSE
-- 执行业务逻辑
END IF;
IF ELSE条件判断
IF
temp_type = '1'
THEN
-- 执行业务逻辑
ELSEIF
temp_type = '2'
THEN
-- 执行业务逻辑
ELSEIF
temp_type = '2'
THEN
-- 执行业务逻辑
ELSE
-- 执行业务逻辑
END IF;
目前项目中使用到的就这些,后续还会继续补充