BEGIN
declare no_more_rows BOOLEAN default false;
declare no_more_rows_new BOOLEAN default false;
declare p_task int;
declare p_predecessor int;
declare p_type varchar(155);
declare p_lag int;
declare p_created varchar(50);
declare p_modified varchar(50);
declare t_id int;
declare t_pre_task int;
declare count_f int default 0;
declare cur_predecessor cursor for
select task,predecessor,type,lag,created,modified from midtasks_predecessor;
declare continue handler for not found set no_more_rows  = true;

open cur_predecessor;
the_loop: LOOP
fetch cur_predecessor into p_task,p_predecessor,p_type,p_lag,p_created,p_modified;
if no_more_rows = true then
CLOSE cur_predecessor;
LEAVE the_loop;
end if;
begin
declare cur_task cursor for
select id , pre_task from midtasks where project = copy_id_pro;
declare continue handler for not found set no_more_rows_new  = true;
open cur_task;
the_loop_new : LOOP
fetch cur_task into t_id,t_pre_task;
if no_more_rows_new = true then
CLOSE cur_task;
LEAVE the_loop_new;
begin
if p_task = t_pre_task then
insert into midtasks_predecessor(task,predecessor,type,lag,created) values (t_id,(select id from midtasks where pre_task = p_predecessor limit 0,1),p_type,p_lag,sysdate());
end if;
end;
end LOOP the_loop_new;
end;
end LOOP the_loop;
END錯誤報的是最后的語法錯誤,但是真心看不出來了 ,求大神

解决方案 »

  1.   

    BEGIN
    declare no_more_rows BOOLEAN default false;
    declare no_more_rows_new BOOLEAN default false;
    declare p_task int;
    declare p_predecessor int;
    declare p_type varchar(155);
    declare p_lag int;
    declare p_created varchar(50);
    declare p_modified varchar(50);
    declare t_id int;
    declare t_pre_task int;
    declare count_f int default 0;
    declare cur_predecessor cursor for
    select task,predecessor,type,lag,created,modified from midtasks_predecessor;
    declare cur_task cursor for
    select id , pre_task from midtasks where project = copy_id_pro;

    declare continue handler for not found set no_more_rows_new  = true; open cur_predecessor;
    the_loop: LOOP
    fetch cur_predecessor into p_task,p_predecessor,p_type,p_lag,p_created,p_modified;
    if no_more_rows = true then
    CLOSE cur_predecessor;
    LEAVE the_loop;
    end if;
    begin open cur_task;
    the_loop_new : LOOP
    fetch cur_task into t_id,t_pre_ta