存储过程的语法错误

时间:2017-11-29 03:54:53

标签: mysql stored-procedures mariadb

DELIMITER //
CREATE  PROCEDURE final_arrest ()
AS 
cursor c_final_arrest is 
select greatest(Week 1,Week 2)as a ,
greatest(Week 1,Week 3) as b ,
greatest(Week 2,Week 3) as c
from arrest
for update;
c_a number;
c_b number;
c_c number;
c_sum number;
c_avg number;
begin
open c_final_arrest;
loop
fetch c_final_arrest into c_a,c_b,c_c;
exit when c_final_arrest % notfound;
if(c_a != c_b)then
c_sum := c_a + c_b;
else
c_sum := c_a + c_c;
end if;
c_avg := c_sum/2;
update arrest set Avg=c_avg
where current of c_final_arrest;
end loop;
close c_final_arrest;
end //
DELIMITER ;

任何人都可以帮我解决这个问题.. !!我无法在mysql中创建此过程....继续收到错误

1064 - 您的SQL语法出错;检查与您的MariaDB服务器版本对应的手册,以便在#< AS

附近使用正确的语法

游标c_final_arrest是 选择最大(第1周,第2周)作为, 最大的(W'第2行

我不知道该怎么做......帮助

如果有人可以提供替代代码,那就太好了!!! !!!

1 个答案:

答案 0 :(得分:0)

自从我编写存储过程以来已经有一段时间了 - 但我会看看以下内容:

1)仔细查看间距 - 即将“最大(第1周,第2周)”更改为“最大”(第1周,第2周)为“

2)“a”可以保留 - 我会使用更多描述性的列名 3)列名“周n”包含空格。您可能需要在列名称周围加引号“”或括号[],例如“最大([第1周],[第2周])”

相关问题