MySQL 为游标NOT FOUND条件设置处理程序
时间:2019-02-04 12:52:35 来源:igfitidea点击:
本MySQL教程将学习如何在MySQL中设置游标NOT FOUND条件的处理程序。
如果试图从游标获取数据,结果没有数据行,那么MySQL将产生一个no data的错误。可以为NOT FOUND条件设置处理程序,这样存储过程就不会因为错误而被终止。
语法
在MySQL中为游标的NOT FOUND条件设置处理程序的语法为:
DECLARE CONTINUE HANDLER FOR NOT FOUND [ set_condition ];
参数 | 说明 |
---|---|
set_condition | 游标遇到NOT FOUND时要设置的条件。 |
示例
让我们看一下如何在MySQL中为游标的NOT FOUND条件设置处理程序。
首先,我们需要声明一个变量,该变量将在发生NO DATA错误时被设置。
DECLARE done INT DEFAULT FALSE;
接下来,我们需要声明游标。
DECLARE c1 CURSOR FOR SELECT site_id FROM sites WHERE site_name = name_in;
最后,我们需要为游标的NOT FOUND声明一个处理程序。
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
这样在存储过程中就不会因错误而终止:
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 ;