-- ************************************************
-- 存储过程
-- ************************************************
-- 创建存储过程
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;