题目:有五个班级,每个班有5个学生,学生的考试成绩均随机生成,求出各个班的总分和平均分。
思路:先创建一张表
create table chengjibiao (class number(5) primary key,stu number(2),stscore number(5));
再插入数据(班级编号1到5,学生编号也是1到5,成绩随机取整)
begin
for a in 1..5 loop
for b in 1..5 loop
insert into chengjibiao(class,stu,stscore) values(a,b,round(dbms_random.value(1,100)));
end loop ;
end loop;
end;
第一次报错:ORA-00001: 违反唯一约束条件
自己百度后,修改为
begin
for a in 1..5 loop
for b in 1..5 loop
insert into chengjibiao(class,stu,stscore) values(a,b,round(dbms_random.value(1,100)))
on DUPLICATE KEY update class=a,stu=b, stscore=round(dbms_random.value(1,100);
end loop ;
end loop;
end;
第二次报错:PL/SQL: ORA-00933: SQL 命令未正确结束
求教各位,怎么修改?或者直接给出更好的思路
加个sleep吧,估计是数据库反应不过来。
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
你建表指定的主键是班级,作为一个分数表,班级肯定会出现重复啊,一个班级有很多人的。就你现在这个表,主键应该是班级号+学生号
但你现在这个逻辑还缺少课程号,学生怎么会只有一个课程呢?
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y