ITPub博客

首页 > 数据库 > 国内数据库 > 【YashanDB 知识库】共享从 MySQL 异常处理 CONTINUE HANDLER 的改写方法

【YashanDB 知识库】共享从 MySQL 异常处理 CONTINUE HANDLER 的改写方法

原创 国内数据库 作者:崖山数据库系统YashanDB 时间:2025-02-11 15:26:11 0 删除 编辑

本文内容来自 YashanDB 官网,原文内容请见 共享从 MySQL 异常处理 CONTINUE HANDLER 的改写方法 - YashanDB

 

 

-- 表 DDL

create table t1(c1 int primary key, c2 int);

create table t2(c1 int primary key, c2 int);

-- 数据

insert into t1 values(1,1),(2,2);

insert into t2 values(1,11);

commit;

-- 使用 CONTINUE HANDLER 的存储过程

DELIMITER $$

CREATE PROCEDURE demo(IN p1 int)

BEGIN

DECLARE s bigint DEFAULT 0;

DECLARE v1 bigint DEFAULT 0;

DECLARE v2 bigint DEFAULT 0;

DECLARE cur1 CURSOR FOR select c2 from t1 where c1=p1;

DECLARE CONTINUE HANDLER FOR not found SET s=1;

OPEN cur1;

r_loop: LOOP

IF s = 1 THEN

LEAVE r_loop;

END IF;

-- 如果游标 fetch 结果 not found,则设置 s=1

FETCH cur1 INTO v1;

IF s = 0 THEN

-- 如果查询结果 not found,则设置 s=1

select c2 into v2 from t2 where c1=v1;

-- 调试:输出 v2 值

select v2;

-- 调试:输出 s 值

select s;

END IF;

END LOOP r_loop;

CLOSE cur1;

END$$

DELIMITER ;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3071696/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639968