使用 LOOP 和 FETCH 来读取 MySQL 游标

发布于 2022-09-01 03:43:42 字数 1470 浏览 8 评论 0

  1. mysql>
  2. mysql> delimiter $$
  3. mysql> CREATE PROCEDURE myProc()
  4.     -> BEGIN
  5.     ->   DECLARE l_sale_id INT;
  6.     ->   DECLARE l_last_sale INT DEFAULT 0;
  7.     ->
  8.     ->   DECLARE sale_csr CURSOR FOR
  9.     ->     SELECT id
  10.     ->       FROM employee;
  11.     ->
  12.     ->   DECLARE CONTINUE HANDLER FOR NOT FOUND SET l_last_sale=1;
  13.     ->
  14.     ->   OPEN sale_csr;
  15.     ->   sale_loop:LOOP
  16.     ->     FETCH sale_csr INTO l_sale_id;
  17.     ->     IF l_last_sale THEN
  18.     ->       LEAVE sale_loop;
  19.     ->     END IF;
  20.     ->     select l_sale_id;
  21.     ->   END LOOP sale_loop;
  22.     ->   CLOSE sale_csr;
  23.     ->
  24.     -> END$$
  25. Query OK, 0 rows affected (0.00 sec)
  26. mysql>
  27. mysql> delimiter ;
  28. mysql> call myProc();

复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文