Skip to content

Instantly share code, notes, and snippets.

@SQLadmin
Created November 6, 2018 19:26
Show Gist options
  • Save SQLadmin/bc81dcbfef9358980cf9bda09bbc7716 to your computer and use it in GitHub Desktop.
Save SQLadmin/bc81dcbfef9358980cf9bda09bbc7716 to your computer and use it in GitHub Desktop.
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