无法使用存储过程更新标记 - MySQL
Cannot update a mark by using Store Procedure - MySQL
我试图使用存储过程更新标记 table 中的标记结果。 运行 脚本时很好,但没有任何改变。有谁知道我在脚本中写错了什么?
以下是有关 table 的一些信息:
学生 - 包含 SID 和 CourseID
课程 - CourseID 和 DeptID
部门 - DeptID
模块 - ModuleID 和 DeptID
标记 - ModuleID、SID 和 MarkID
这是我的代码:
Drop procedure if exists coursework.UpdateStudentMark;
DELIMITER //
Create procedure coursework.UpdateStudentMark
(
IN Message varchar(500) ,
IN StudentID text,
IN Academic_Year int,
IN Module_Code_And_Title text,
IN Module_Mark int
)
BEGIN
insert into logging_table (AuditText, timestamp )
values ( Message, now() );
update coursework.mark as mark
INNER JOIN
coursework.Modules USING (ModuleID)
INNER JOIN
coursework.department USING (DeptID)
INNER JOIN
coursework.course USING (DeptID)
INNER JOIN
coursework.student USING (CourseID , SID)
set
Module_Mark = mark.Module_Mark
Where student.StudentID = StudentID AND student.Academic_Year= Academic_Year AND Modules.Module_Code_And_Title = Module_Code_And_Title;
END;
//
Delimiter ;
我通过这段代码调用了存储过程:
Call coursework.UpdateStudentMark ('Update Student Stats' ,'B3984673', 2018, 'EEEE3001: Third Year Project [FY]' , 1);
嗯...如果我错了请纠正我,但您只是将列更新为它本身(设置 mark.Module_Mark
= mark.Module_Mark
)例如,
update coursework.mark as mark
<...>
set
Module_Mark = mark.Module_Mark
我试图使用存储过程更新标记 table 中的标记结果。 运行 脚本时很好,但没有任何改变。有谁知道我在脚本中写错了什么?
以下是有关 table 的一些信息:
学生 - 包含 SID 和 CourseID
课程 - CourseID 和 DeptID
部门 - DeptID
模块 - ModuleID 和 DeptID
标记 - ModuleID、SID 和 MarkID
这是我的代码:
Drop procedure if exists coursework.UpdateStudentMark;
DELIMITER //
Create procedure coursework.UpdateStudentMark
(
IN Message varchar(500) ,
IN StudentID text,
IN Academic_Year int,
IN Module_Code_And_Title text,
IN Module_Mark int
)
BEGIN
insert into logging_table (AuditText, timestamp )
values ( Message, now() );
update coursework.mark as mark
INNER JOIN
coursework.Modules USING (ModuleID)
INNER JOIN
coursework.department USING (DeptID)
INNER JOIN
coursework.course USING (DeptID)
INNER JOIN
coursework.student USING (CourseID , SID)
set
Module_Mark = mark.Module_Mark
Where student.StudentID = StudentID AND student.Academic_Year= Academic_Year AND Modules.Module_Code_And_Title = Module_Code_And_Title;
END;
//
Delimiter ;
我通过这段代码调用了存储过程:
Call coursework.UpdateStudentMark ('Update Student Stats' ,'B3984673', 2018, 'EEEE3001: Third Year Project [FY]' , 1);
嗯...如果我错了请纠正我,但您只是将列更新为它本身(设置 mark.Module_Mark
= mark.Module_Mark
)例如,
update coursework.mark as mark
<...>
set
Module_Mark = mark.Module_Mark