我试图创建一个可重用的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
注意:我这样做的过程,因为我想在多个过程中选择相同的初始数据,然后我会过滤下来。这样,它可以防止重复的代码,如果我以后需要更改它,我可以这样做一次。
暂无答案!
目前还没有任何答案,快来回答吧!