首页  >  文章  >  数据库  >  **当没有预期结果时如何解决存储过程中的'错误 1329:无数据”?**

**当没有预期结果时如何解决存储过程中的'错误 1329:无数据”?**

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-28 20:30:30836浏览

**How to Resolve

如何使用存储过程处理“错误 1329:无数据”

问题:

您有一个存储过程不需要返回任何值。执行成功,但是完成后输出错误信息:

Error: No data - zero rows fetched, selected, or processed

解决方案:

出现错误信息是因为存储过程没有显式处理该情况其中任何操作都不会返回任何数据。要解决此问题,您可以包含 DECLARE CONTINUE HANDLER 语句来忽略 NOT FOUND 错误:

<code class="sql">DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;</code>

说明:

DECLARE CONTINUE HANDLER 语句告诉 MySQL忽略 NOT FOUND 错误并继续执行存储过程。在您的特定情况下,应在循环遍历 customer_tbl 表中的行之后添加此语句:

<code class="sql">my_cur_loop:
LOOP
FETCH my_cur INTO l_name;
IF done = 1 THEN
LEAVE my_cur_loop;
END IF;
INSERT INTO names_tbl VALUES(l_name);
END LOOP my_cur_loop;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;</code>

附加说明:

对于 MySQL 版本5.5.13及以上版本,还可以在存储过程末尾添加“dummy”语句来清除警告:

<code class="sql">SELECT name INTO l_name FROM customer_tbl LIMIT 1;</code>

这条语句成功,不涉及任何数据,有效清除了警告警告消息。

以上是**当没有预期结果时如何解决存储过程中的'错误 1329:无数据”?**的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn