mysql动态游标

时间:2010-01-18 18:15:08

标签: mysql cursors

这是我写的程序 - 游标c1& c2c2位于c1内,我尝试在c2下方c1c1光标之外)宣布I,但create table t1(i int); create table t2(i int, j int); insert into t1(i) values(1), (2), (3), (4), (5); insert into t2(i, j) values(1, 6), (2, 7), (3, 8), (4, 9), (5, 10); delimiter $ CREATE PROCEDURE p1() BEGIN DECLARE I INT; DECLARE J INT; DECLARE done INT DEFAULT 0; DECLARE c1 CURSOR FOR SELECT i FROM t1; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN c1; REPEAT FETCH c1 INTO I; IF NOT done THEN select I; DECLARE c2 CURSOR FOR SELECT j FROM t2 WHERE i = I; OPEN c2; REPEAT FETCH c2 into J; IF NOT done THEN SELECT J; END IF; UNTIL done END REPEAT; CLOSE c2; set done = 0; END IF; UNTIL done END REPEAT; CLOSE c1; END$ delimiter ; 未获取更新后的值:(任何使其工作的建议都会有所帮助,谢谢

{{1}}

1 个答案:

答案 0 :(得分:1)

我不明白你想做什么。在过程中一次选择一个单独的字段时,您将创建多个结果集。我怀疑那是你想要的。

以下过程更简单,并在单个结果集中为您提供相同的数据:

CREATE PROCEDURE p1()
BEGIN
  SELECT i, j FROM t1 JOIN t2 USING (i);
END

也许您可以编辑您的问题并描述您想要的结果,或者显示所需输出的示例。