两者区别:
存储函数必须有返回值,且仅返回一个结果值
存储过程可以没有返回值,但是能返回结果集(out,inout)
存储过程一般是作为一个独立的部分来执行( EXECUTE 语句执行),而函数可以作为查询语句的一个部分来调用(SELECT调用),由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。 SQL语句中不可用存储过程,而可以使用函数。
一、过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `NewProc2`(IN `mydate` datetime,OUT `strDate` varchar(50))
BEGIN
SELECT DATE_FORMAT(mydate,'%y年%m月%d日') INTO strDate;
END
执行:
CALL NewProc2(now(),@str);
SELECT @str;
二.函数
CREATE DEFINER=`root`@`localhost` PROCEDURE `NewProc3`(IN `num` int)
BEGIN
DECLARE number INT DEFAULT 1;
WHILE number<num DO
INSERT INTO tab_username (`name`,`age`) VALUES (CONCAT('abc',number),'20');
set number=number+1;
END WHILE;
END
执行:
call NewProc3(100)
来源:CSDN
作者:路过火车
链接:https://blog.csdn.net/weixin_42362496/article/details/104313058