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