Mysql 在存储过程中使用临时表是一种好做法,还是应该使用视图?
我首先在另外两个视图之间进行了连接,得到了第三个视图,名为AUX,这是过程中的一个视图,现在我想知道在recipe中使用三个临时表是否是更好的方法Mysql 在存储过程中使用临时表是一种好做法,还是应该使用视图?,mysql,sql,mysql-workbench,Mysql,Sql,Mysql Workbench,我首先在另外两个视图之间进行了连接,得到了第三个视图,名为AUX,这是过程中的一个视图,现在我想知道在recipe中使用三个临时表是否是更好的方法 DROP PROCEDURE IF EXISTS recipe; DELIMITER $$ CREATE PROCEDURE recipe(pIDrecipe INT, OUT pmessage VARCHAR(255)) SALIR:BEGIN IF pIDrecipe IS NULL
DROP PROCEDURE IF EXISTS recipe;
DELIMITER $$
CREATE PROCEDURE recipe(pIDrecipe INT, OUT pmessage VARCHAR(255))
SALIR:BEGIN
IF pIDrecipe IS NULL THEN
SET pmessage="wrong input" ;
LEAVE SALIR;
ELSEIF NOT EXISTS(SELECT pIDrecipe FROM Recipes WHERE IDrecipe = pIDrecipe) THEN
SET pmessage="not exists";
LEAVE SALIR;
ELSE
START TRANSACTION;
SELECT Name,ingredients,steps
FROM AUX WHERE IDrecipe = pIDrecipe;
SET pmessage="success" ;
COMMIT;
END IF;
END $$
DELIMITER ;
我在您的代码中看不到视图。我想知道您是否需要视图或过程,因为db没有更改,所以事务在这里似乎没有任何用途。提交select是一个有趣的概念,如果您阅读,您可能会看到事务的用途对于非“过程性”的事情使用存储过程是否是一种良好的做法?我被要求使用存储过程来解决问题,但我不相信,因为我认为使用视图已经足够了。