存储过程和存储函数都属于 MySQL 中的可编程对象。它们可以把多条 SQL 和业务逻辑封装起来,减少重复代码,提高复用性,并把一部分处理逻辑放在数据库内部执行。
存储过程(Stored Procedure)是保存在数据库中的一组 SQL 语句集合,可以被显式调用执行。
例如,用户开户、订单结算、批量更新等操作,如果涉及多条 SQL,就可以封装成存储过程。
存储函数(Stored Function)则更像一个“可返回值的函数”,通常接收参数并返回一个结果,常用于表达式计算和查询中。
简单理解:
它们的主要区别包括:
CALL 调用,存储函数可以直接写在表达式里。例如:
如果你的目标是封装一系列操作流程,优先考虑存储过程;如果你的目标是返回一个可复用的计算结果,优先考虑存储函数。