我正在制作一个学校项目的程序,如果它没有被使用,就会从课程表中删除一个特定的课程。
根据我所读到的一切,这是正确的设置,但最后一次错误是#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'
非常感谢任何想法和想法!
谢谢,
怪异。
答案 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
...
应该没问题