【发布时间】:2019-10-19 12:05:01
【问题描述】:
数据库是关于考试安排的,这是关于在给定日期安排课程的主要存储过程。 我创建了该过程,但是当我尝试调用它时说找不到该过程。
我查看了代码但找不到语法错误,程序本身没有编译错误,(但那可能是因为我必须使用分隔符?)
DELIMITER $$
CREATE PROCEDURE schedule_course(IN in_code CHAR(3), IN in_date DATE)
BEGIN
DECLARE complete BOOLEAN DEFAULT FALSE;
DECLARE module_code CHAR(3);
DECLARE module_c CURSOR FOR
SELECT course_code FROM module WHERE course_code = in_code;
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET complete = TRUE;
IF (DAYOFWEEK(in_date) = 6 OR 7) THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE TEXT = 'Cannot schedule start date on a weekend'
END IF;
OPEN module_c;
mainloop : LOOP
FETCH NEXT FROM module_c INTO module_code;
IF complete THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE TEXT = 'Something something'
END IF;
INSERT INTO SESSION (`code`, `date`, room)
VALUES
(module_code, in_date, NULL)
LEAVE mainloop;
END LOOP;
DELIMITER ;
CALL schedule_course(WSD, CURDATE())
错误代码:1305。PROCEDURE cameron.schedule_course 不存在
【问题讨论】:
-
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MESSAGE TEXT = 'Cannot schedule start date on a weekend' -
您的程序中有多个语法错误 - 所以它不应该编译。
标签: mysql database stored-procedures