sql語句循環執行


場景:不能一次性批量更新完成,修改或查詢數據是依賴於上一條數據執行完成后,拿到上一條數據比較。

又不想通過代碼去寫一個junit完成語句。所以,寫了個mysql存儲過程。。

其中

#刪除過程
DROP PROCEDURE IF EXISTS updateStock;
#創建過程,待參數。入參用IN聲明。出參用OUT CREATE PROCEDURE updateStock (IN c_num INTEGER ) BEGIN SET @i
= 0;# 變量賦值 WHILE @i < c_num DO # 結束循環的條件: 當i大於5時跳出while循環 SET @i = @i + 1; #臨時變量累加 update t_his_ab a LEFT JOIN t_his_ab b on a.stock_no_full = b.stock_no_full and a.account_id = b.account_id and a.settle_date = DATE_ADD(b.settle_date,INTERVAL 1 DAY) set a.build_no = b.build_no, a.build_time=b.build_time, a.liquidation_time=b.liquidation_time, a.date_delivery_last=b.liquidation_time, a.stock_status = b.stock_status where a.build_no is null and b.build_no is not null; select count(0) into @co from t_his_account_stock a where a.build_no is null ; SELECT @i, @co; #輸出當次結果。 END WHILE;# 結束while循環 END;

# 調用過程 CALL updateStock(
1);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM