我創建了兩個表格學生和等級。學生表包含id(PK),名稱,標記,地址的列。我給它插入了10個值。在等級表中有兩個coulmns stud_id(外鍵)和stud_status。在等級上我必須在存儲過程中寫入一個光標,以便從學生表中插入成績表。條件就像是如果學生的成績在成績表中高於50,它應該在stud_status中存儲爲'G',對於它,也應該存儲爲stud_id。如果mark = 50,它應該存儲'E',否則是'L' 我使用下面的代碼。和iam使用MySQL Workbench 6.0。使用存儲過程中的光標從一個插入到另一個表
use test;
delimiter $$
drop procedure if exists `p_status` $$
create procedure `p_status`()
begin
declare s_stud_mark int(111);
declare s_stud_id int(111);
declare cur_stud cursor For Select stud_id,stud_mark from student where stud_id is not null;
open cur_stud;
fetch cur_stud into s_stud_mark,s_stud_id;
if(stud_mark > 50) then
set s_stud_mark='G';
insert into grade(`stud_id`,`stud_staus`)values(s_stud_id,s_stud_mark);
else if(stud_mark = 50) then
set s_stud_mark='E';
insert into grade(`stud_id`,`stud_status`) values(s_stud_id,s_stud_mark);
else
set s_stud_mark='L';
insert into grade(`stud_id`,`stud_status`)values(s_stud_id,s_stud_mark);
end if ;
end if ;
close cur_stud;
end $$
delimiter ;
,但它顯示的錯誤爲 「錯誤代碼:在 '字段列表' 1054年未知列 'stud_mark'」
有人回覆
感謝代碼運行成功。 – Benny