分类: Mysql/postgreSQL
2013-11-06 12:06:37
原文地址:mysql 游标的应用尝试 作者:hnynes
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
经过我的测试,这种方法是可以查到数据的条数的,但取出的数据为NULL。而且如果同时游标区域外使用简单脚本,将也只能显示条数,数据全都为NULL。只需要作一点小改动就可以使数据正常显示出来,add a alias for tablename in select scripts.
eg:
declare cur1 cursor for select pi.playerid from playerinfo pi;
同时其它未使用游标的语句也要使用alias,否则无法得到灵气,只能得到数据条数而已。