begin declare deduction_cursor cursor for select userddid from userdeduce where customerid=v_customerid and status=0 order by userddid; SET v_endFlag=0; OPEN deduction_cursor; FETCH deduction_cursor INTO v_userddid_cur; WHILE (v_endFlag=0) do update userdividededuce set status=1 where userddid=v_userddid_cur; FETCH deduction_cursor INTO v_userddid_cur; END WHILE; CLOSE deduction_cursor; end;去掉了一些业务逻辑。这个游标是操作userdeduce表,游标运行中又更新了该表的记录的状态,这样算是修改了当前表的数据了吧,会影响游标吗?会造成不可预知的问题吗?
你在外面查询数据再修改当然何以,
在触发器里就不行,DELETE 和UPDATE是禁止的,防止递归错误。
begin
declare deduction_cursor cursor for select userddid from userdeduce where customerid=v_customerid and status=0 order by userddid;
SET v_endFlag=0;
OPEN deduction_cursor;
FETCH deduction_cursor INTO v_userddid_cur;
WHILE (v_endFlag=0) do
update userdividededuce set status=1 where userddid=v_userddid_cur;
FETCH deduction_cursor INTO v_userddid_cur;
END WHILE;
CLOSE deduction_cursor;
end;去掉了一些业务逻辑。这个游标是操作userdeduce表,游标运行中又更新了该表的记录的状态,这样算是修改了当前表的数据了吧,会影响游标吗?会造成不可预知的问题吗?