Created
November 6, 2018 19:26
-
-
Save SQLadmin/bc81dcbfef9358980cf9bda09bbc7716 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use sqladmin; | |
DROP PROCEDURE | |
IF EXISTS sqladmin_archive; | |
delimiter // | |
CREATE PROCEDURE | |
sqladmin_archive(IN archive_dbname varchar(100), IN archive_table varchar(100), IN archive_column varchar(100), IN archive_date varchar(100)) | |
begin | |
DECLARE rows INT; | |
DECLARE rows_deleted INT; | |
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; | |
SET rows = 1; | |
SET rows_deleted = 10000; | |
WHILE rows > 0 | |
do | |
SET autocommit=1; | |
SET @query =CONCAT('DELETE FROM ',archive_dbname,'.',archive_table,' WHERE ',archive_column,' <= "',archive_date ,'" LIMIT 10000;'); | |
PREPARE arcive_stmt FROM @query; | |
EXECUTE arcive_stmt; | |
SET rows = row_count(); | |
SET rows = row_count(); | |
select sleep(1); | |
commit; | |
DEALLOCATE PREPARE arcive_stmt; | |
END WHILE; | |
END // | |
delimiter ; | |
-- Execute this procedure | |
CALL sqladmin_archive ('mydb','test_table','created_at','2018-09-12'); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment