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');