在mysql过程中放置delete sql



我需要从存储过程中的暂存表中删除记录。然后我需要将记录插入到同一个表中。这必须在使用在记录中循环的游标之前完成。

DELIMITER //
CREATE PROCEDURE Get_Employee_Records()
BEGIN
DECLARE rollingSum INT DEFAULT 0;
DECLARE theMonth varchar(3);
-- Delete & insert on Employee must be done prior to the select 
DECLARE mycursor CURSOR FOR  SELECT Tgrowth,TYear,myMONTH FROM Employee;
-- cursor body here
CLOSE mycursor;
END //
DELIMITER ;

当我放置我的插入&删除评论部分的语句我得到

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DECLARE mycursor CURSOR FOR  SELECT Tgrowth,TYear,myMONTH FROM Employee' at line 63

放置插件的正确位置在哪里;在过程中删除sql。我可能可以在单独的程序中完成,但我想知道我是否遗漏了什么。

在开始。。。结束块声明必须出现在任何其他代码之前,因此将光标部分换行。。这样结束(顺便说一句,你需要修复代码(。

begin
DECLARE mycursor CURSOR FOR  SELECT Tgrowth,TYear,myMONTH FROM Employee;
-- cursor body here
open mycursor;
CLOSE mycursor;
end;

在sql中几乎从来没有使用游标的理由——你确定你的方法是合适的吗?

我对MYSQL不是很熟悉,但我认为DELETE和INSERT应该出现在Cursor声明之后,打开和关闭光标之前。

最新更新