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

cuxqih21  于 2021-06-17  发布在  Mysql
关注(0)|答案(0)|浏览(346)

我试图创建一个可重用的mysql过程,从连接表中获取数据并将其存储在临时表中。然后我将创建不同的过程来从结果中选择/计算数据。以下是迄今为止我的sql代码:

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

这个 getModulesInCourse 过程创建一个名为 modules 之后 getModulesInCourse 在过程中调用 getModulesForCourseYear ,然后我想过滤这个结果。这就是它失败的地方。
我猜这是因为mysql不知道什么表 modules 因为它目前不存在。
如何在此过程中从临时表中进行选择?
我在phpmyadmin中执行此操作,它会产生以下错误:

  1. SQL query:
  2. CREATE PROCEDURE getModulesForCourseYear(IN cid VARCHAR(10), IN yr INT(1))
  3. CALL getModulesInCourse(cid);
  4. SELECT * FROM modules WHERE year = yr;
  5. MySQL said:
  6. # 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

注意:我这样做的过程,因为我想在多个过程中选择相同的初始数据,然后我会过滤下来。这样,它可以防止重复的代码,如果我以后需要更改它,我可以这样做一次。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题