【发布时间】:2011-03-14 13:07:53
【问题描述】:
为了使用 MySQL 动态使用游标,是否可以在存储过程的循环中声明游标? 我试过了,报错:
increment: LOOP
DECLARE cur1 CURSOR FOR SELECT person_id, publication_id FROM p_publication WHERE person_id = new_count;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur1;
REPEAT
FETCH cur1 INTO pub_id, per_id;
IF NOT done THEN
INSERT INTO test.t2 VALUES (pub_id, per_id);
END IF;
SET new_count = new_count + 1;
UNTIL done END REPEAT;
CLOSE cur1;
IF !(new_count < old_count ) THEN LEAVE increment;
END IF;
END LOOP increment;
您的 SQL 语法有错误;检查与您的 MySQL 对应的手册 在 'DECLARE cur1 CURSOR FOR SELECT person_id, 附近使用正确语法的服务器版本, 第 12 行的publication_id FROM person_has_public'
提前致谢
【问题讨论】:
标签: mysql loops stored-procedures mysql-error-1064 database-cursor