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