日期:2014-05-16  浏览次数:20663 次

请教一个MYSQL的存储过程和游标的问题
有这样一个场景
有一个表test
下面三个字段
id name scorce
a b c
d e f
t g k
我现在要把 name的值逐个取出,放到存储过程的一个变量里。然后执行一个update的操作。
请问如何写这个存储和游标?

------解决方案--------------------
不清楚你的需求是什么, 至于存储过程和游标,你可以直接参考手册中的例子。
引用
CREATE PROCEDURE curdemo()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE a CHAR(16);
DECLARE b,c INT;
DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;
DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

OPEN cur1;
OPEN cur2;

REPEAT
FETCH cur1 INTO a, b;
FETCH cur2 INTO c;
IF NOT done THEN
IF b < c THEN
INSERT INTO test.t3 VALUES (a,b);
ELSE
INSERT INTO test.t3 VALUES (a,c);
END IF;
END IF;
UNTIL done END REPEAT;

CLOSE cur1;
CLOSE cur2;
END


------解决方案--------------------
引用放到存储过程的一个变量里。然后执行一个update的操作。