mysql 过程和函数的使用方法

爱⌒轻易说出口 提交于 2020-02-15 08:55:16

两者区别:
存储函数必须有返回值,且仅返回一个结果值
存储过程可以没有返回值,但是能返回结果集(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)
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!