MySQL 定义游标
时间:2019-02-04 12:52:34  来源:igfitidea点击:
本MySQL教程通过语法和示例说明如何在MySQL中声明游标。
游标是一个SELECT语句,它在MySQL中的存储过程的声明部分中被定义。
语法
在MySQL中声明游标的语法为:
DECLARE cursor_name CURSOR FOR select_statement;
| 参数 | 说明 | 
|---|---|
| cursor_name | 指定游标的名称。 | 
| select_statement | 与游标相关联的SELECT语句。 | 
MySQL 定义游标示例
如何在MySQL中声明游标:
DECLARE c1 CURSOR FOR SELECT site_id FROM sites WHERE site_name = name_in;
这个游标的结果集是site_name与name_in相匹配时对应的所有site_id值。
如何使用mysql游标:
DELIMITER //
CREATE FUNCTION FindSiteID ( name_in VARCHAR(50) )
RETURNS INT
BEGIN
   DECLARE done INT DEFAULT FALSE;
   DECLARE siteID INT DEFAULT 0;
   DECLARE c1 CURSOR FOR
     SELECT site_id
     FROM sites
     WHERE site_name = name_in;
   DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
   OPEN c1;
   FETCH c1 INTO siteID;
   CLOSE c1;
   RETURN siteID;
END; //
DELIMITER ;
然后,就可以按以下方式调用包含游标的新函数:
SELECT FindSiteID ('yunkai');

