mysql 存储过程

CREATE DEFINER=`root`@`%` PROCEDURE `ProcessLargeTable`()
BEGIN  
    DECLARE done INT DEFAULT FALSE;  
    DECLARE cur_id BIGINT;  
    DECLARE max_id  BIGINT  DEFAULT 691148169325; -- 设置你的最大ID  
    DECLARE last_id BIGINT DEFAULT 664476955416; -- 设置你的起始ID  
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;  
  
    WHILE last_id < max_id DO  
        -- 执行你的查询  
        SELECT * FROM LC_CashFlowStatementAll WHERE id > last_id ORDER BY id LIMIT 10000;  
  
        -- 更新last_id为当前批次的最后一个ID(或者简单地增加10000,但这可能不是最精确的)  
        -- 注意:为了获取确切的最后一个ID,你需要稍微修改查询来获取它  
        -- 这里为了简单起见,我们直接增加10000  
        SET last_id = last_id + 10000;  
    END WHILE;  
END

  

posted @ 2024-05-17 18:02  yongqi-911  阅读(2)  评论(0编辑  收藏  举报