在mysql过程中调用后从临时表中选择

时间:2019-01-03 14:41:34

标签: mysql stored-procedures

我正在尝试制作一个可重用的mysql过程,该过程从联接表中获取数据并将其存储在临时表中。然后,我将创建不同的过程以从结果中选择/计算数据。 到目前为止,这是我的SQL代码:

DELIMITER //
CREATE PROCEDURE getModulesForCourseYear(IN cid VARCHAR(10), IN yr INT(1))
CALL getModulesInCourse(cid);
SELECT * FROM modules WHERE year = yr;//
DELIMITER ;

getModulesInCourse过程创建一个名为modules的临时表

在过程getModulesInCourse中调用getModulesForCourseYear之后,我想过滤该结果。这是失败的地方。

我想这是因为mysql不知道什么表modules,因为它目前不存在。

如何在此过程中从临时表中进行选择?

我正在PHPMyAdmin中执行此操作,该错误提示:

SQL query:


CREATE PROCEDURE getModulesForCourseYear(IN cid VARCHAR(10), IN yr INT(1))
CALL getModulesInCourse(cid);
SELECT * FROM modules WHERE year = yr;
MySQL said:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SELECT * FROM modules WHERE year = yr' at line 3

注意:我正在执行此过程,因为我想在多个过程中选择相同的初始数据,然后将其过滤掉。这样,它可以防止重复的代码,如果以后需要更改,则可以执行一次。

0 个答案:

没有答案