批量删除2012年9月份以前的表

本文介绍了一个MySQL存储过程,用于批量删除指定模式下一系列LOG表中2012年9月之前的数据。通过定义存储过程并使用游标遍历符合条件的表名,执行DROP TABLE语句实现自动化批量删除。

LOG表有很多,如

cin_t1_201201....cin_t1_201209

cin_t2_201201....cin_t2_201209

……

cin_t10_201201....cin_t10_201209

存储过程如下:


  1. DELIMITER $$ 
  2. DROP PROCEDURE IF EXISTS `drop201209_before`$$ 
  3. CREATE PROCEDURE `drop201209_before`() 
  4. BEGIN 
  5.  
  6. DECLARE done INT DEFAULT 0;  
  7. DECLARE l_t2012 VARCHAR(100); 
  8. DECLARE drop201209_before_cursor CURSOR FOR SELECT TABLE_NAME FROM information_schema.tables WHERE TABLE_SCHEMA='report' AND TABLE_NAME  
  9. REGEXP 'cin_.*20120[1-8]'; 
  10. DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1
  11. OPEN drop201209_before_cursor; 
  12. drop_loop: LOOP  
  13. FETCH drop201209_before_cursor INTO l_t2012; 
  14. IF done=1 THEN 
  15. LEAVE drop_loop;  
  16. END IF;  
  17. SET @v_droptablesql=CONCAT('DROP TABLE ',l_t2012); 
  18. PREPARE droptable FROM @v_droptablesql; 
  19. EXECUTE droptable; 
  20. END LOOP drop_loop; 
  21. CLOSE drop201209_before_cursor; 
  22.  
  23. END$$ 
  24. DELIMITER ; 

 



















本文转自hcymysql51CTO博客,原文链接:http://blog.51cto.com/hcymysql/981507 ,如需转载请自行联系原作者



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值