能否在视图中调用存储过程?

3

有人在 这里 问了一个关于 SQL Server 的类似问题。我想知道在 MySql 中是否也有可能。

编辑:

我希望能在视图中使用从存储过程中返回的结果集。


这个帖子可能会有所帮助。简而言之,您可以通过在视图定义体中使用函数来实现。 - dawebber
@dawebber:我之前看过这个帖子,但不确定它是否相关。它似乎是在告诉我们如何在视图中调用带参数的存储函数。如果我错了,请指正。 - understack
你是否特别想要调用存储过程?我在我的回答中提到了函数这个词,因为我不想假设你特别想要调用存储过程。 - dawebber
1个回答

3

如果想在FROM子句中获取结果集并使用例程 - 不行。MySQL中的存储例程(过程或函数)无法将表作为结果值返回。

但您可以将函数用作简单值,例如 -

DELIMITER $$

CREATE FUNCTION mul10(Param1 INT)
RETURNS INT(11)
BEGIN
  RETURN Param1 * 10;
END
$$

DELIMITER ;

CREATE OR REPLACE VIEW view1
AS
SELECT mul10(2) AS column1;

SELECT column1 FROM view1;
----------
20

我认为你的第一句话回答了我的问题。我想在视图中使用存储过程的结果集。我也编辑了问题。谢谢。 - understack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接