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;

目前项目中使用到的就这些,后续还会继续补充