mysql 儲存過程

yongqi-911發表於2024-05-17
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

  

相關文章