小编Jor*_*alo的帖子

MySQL:循环游标结果提前结束

我正在执行一个遍历游标结果的循环。代码位于触发器函数中,重要的部分如下所示:

编辑:对不起,愚蠢的错误。删除“one_table”后执行触发器。这与我在触发器代码中执行“删除”或“更新”操作的表不同(参见下面的第二个清单)

create trigger my_trigger after delete on one_table
for each row 
begin 

declare my_value int; 
declare num_rows int default 0; 
declare done int default false; 
declare my_cursor cursor for select value from table where condition; 
declare continue handler for sqlstate '02000' set done = 1; 

open my_cursor; 
select found_rows() into num_rows; 

-- This is just for debugging 
insert into log_table(key, value) values('foo', num_rows); 

if num_rows > 0 then: 
  repeat 
    fetch my_cursor into my_value; 
    -- Do stuff 
  until done …
Run Code Online (Sandbox Code Playgroud)

mysql trigger cursors

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

cursors ×1

mysql ×1

trigger ×1