CALL set_stu_score('201810101101', '1001', 90)为什么导致studentidcourseid=‘1001’和courseid=‘1002’的值都变成了90
时间: 2023-12-25 16:03:58 浏览: 61
stu_score_ms.rar_Score!_jsp课程管理_stu_score_ms_学生信息管理_教师信息管理
5星 · 资源好评率100%
很抱歉,我的回答还是有误。执行`CALL set_stu_score('201810101101', '1001', 90)`语句,会将学号为201810101101、课程号为1001的选课记录的成绩设置为90,而不是将学号为201810101101、课程号为1001和1002的选课记录的成绩都设置为90。
根据您提供的信息,猜测可能是set_stu_score存储过程的代码有问题,导致将course_selection表中符合条件的所有记录的成绩都设置成了IN_score指定的值。请检查一下set_stu_score存储过程的代码是否如下所示:
```
UPDATE course_selection SET score = IN_score WHERE stu_id = IN_stu_id AND course_id = IN_course_id;
```
如果是以上的UPDATE语句,就会将所有符合条件的记录的成绩都设置为IN_score指定的值,而不是只更新一条记录。如果您只想更新一条记录,请使用以下的UPDATE语句:
```
UPDATE course_selection SET score = IN_score WHERE stu_id = IN_stu_id AND course_id = IN_course_id LIMIT 1;
```
这样就可以将符合条件的第一条记录的成绩更新为IN_score指定的值了。
阅读全文