Ошибка синтаксиса TSQL: отсутствует 'if'

0

Я делаю процедуру для школьного проекта, который удаляет определенный курс из таблицы курсов, если он не используется.

В соответствии со всем, что я прочитал, это правильная настройка, но есть ошибка в последнем "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.

Теги:
mysql-workbench

1 ответ

1
Лучший ответ

Возможно, вам нужно будет использовать слово 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
...

Это должно быть хорошо

  • 0
    Спасибо за быстрый ответ, боюсь, что если я уберу «тогда», я получу еще одну ошибку, сообщающую, что она отсутствует. Я использую MySQL, возможно, это поможет?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню