Я делаю процедуру для школьного проекта, который удаляет определенный курс из таблицы курсов, если он не используется.
В соответствии со всем, что я прочитал, это правильная настройка, но есть ошибка в последнем "END"; что там "отсутствует", если ",
Delimiter //
CREATE PROCEDURE DeleteCourse
(
pCourseNumber varchar (7)
)
BEGIN
if NOT EXISTS(SELECT * FROM trackcourses WHERE courseNumber = pCourseNumber)
then
BEGIN
DELETE
FROM courses
WHERE courseNumber = pCourseNumber;
DELETE
FROM restrictors
WHERE courseNumber = pCourseNumber;
select row_count();
END;
else
BEGIN
return 'Course could not be deleted';
END;
END; // <-- Syntax error: missing 'if'
Любые мысли и идеи очень ценятся!
Спасибо,
Weird.
Возможно, вам нужно будет использовать слово THEN
в той же строке, что и IF
, и использовать END IF
вместо BEGIN END
блоков.
IF <statement> THEN
...
END IF
См. Здесь для синтаксиса MySQL
Если вы просто используете:
...
IF NOT EXISTS(SELECT * FROM trackcourses WHERE courseNumber = pCourseNumber) THEN
DELETE
FROM courses
WHERE courseNumber = pCourseNumber;
DELETE
FROM restrictors
WHERE courseNumber = pCourseNumber;
select row_count();
ELSE
RETURN 'Course could not be deleted';
END IF
...
Это должно быть хорошо