Trinea 发表于 2013-1-26 15:16:24

初识存储过程

示例存储过程如下
DELIMITER //DROP PROCEDURE IF EXISTS`curdemo` //CREATE PROCEDURE curdemo()BEGINDECLARE 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 SQLSTATE '02000' 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 //DELIMITER ;  
20.2.11.1.声明光标
DECLARE cursor_name CURSOR FOR select_statement这个语句声明一个光标。也可以在子程序中定义多个光标,但是一个块中的每一个光标必须有唯一的名字。
SELECT语句不能有INTO子句。
 
20.2.11.2. 光标OPEN语句
页: [1]
查看完整版本: 初识存储过程