mysql8.0 存储过程 、存储函数

-- ************************************************
--              存储过程
-- ************************************************

-- 创建存储过程

drop procedure if exists pld;  -- 判断是否存储,存在则删除
CREATE PROCEDURE pld(IN pid INT,OUT nm VARCHAR(100))

BEGIN
		-- UPDATE userinfo SET uname = '八戒' WHERE id = pid;
		SELECT uname  FROM userinfo WHERE id = pid INTO nm;

END;



-- 调用带返回值存储过程
set @pd = 1;
call pld(@pd,@a);
SELECT @a as a;


-- ************************************************
--              存储函数
-- ************************************************

-- 创建存储函数
DROP FUNCTION IF EXISTS getName; -- 判断是否存在,存在则删除
CREATE FUNCTION getName(gid INT) RETURNS VARCHAR(100)
DETERMINISTIC
BEGIN
   DECLARE unames VARCHAR(100);
   SET unames=(SELECT uname FROM userinfo WHERE id=gid);
   RETURN (unames);
END;



#测试调用,业务中简单需求没必要这么封装。
SELECT getName(id) FROM userinfo;

  

原文地址:https://www.cnblogs.com/wuzaipei/p/12506922.html