Я пытаюсь создать многоразовую процедуру 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
ПРИМЕЧАНИЕ: я делаю процедуру таким образом, поскольку я хочу выбрать те же исходные данныев несколько процедур, то я буду фильтровать его.Таким образом, он предотвращает дублирование кода, и если мне понадобится изменить его позже, я могу сделать это один раз.