TSQL语法错误:缺少'如果'

时间:2017-12-10 22:48:17

标签: mysql mysql-workbench

我正在制作一个学校项目的程序,如果它没有被使用,就会从课程表中删除一个特定的课程。

根据我所读到的一切,这是正确的设置,但最后一次错误是#34; 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' 

非常感谢任何想法和想法!

谢谢,

怪异。

1 个答案:

答案 0 :(得分:1)

您可能需要在与THEN相同的行中使用IF一词,并使用END IF代替BEGIN END块。

IF <statement> THEN
...
END IF

请参阅here了解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
...

应该没问题