DROP FUNCTION IF EXISTS logrotate_new_table_name; DELIMITER | CREATE FUNCTION logrotate_new_table_name() RETURNS VARCHAR(20) BEGIN DECLARE suffix VARCHAR(20); SELECT CONCAT('logs', DATE_FORMAT( NOW(), '%Y%m%d%H%i%s' )) INTO suffix; return suffix; END| DELIMITER ; DROP PROCEDURE IF EXISTS logrotate; DELIMITER | CREATE PROCEDURE logrotate() BEGIN DECLARE suffix VARCHAR(20); SET suffix = logrotate_new_table_name(); DROP TABLE IF EXISTS templogs; CREATE TABLE templogs LIKE logs; FLUSH TABLES; RENAME TABLE logs to suffix, templogs TO logs; FLUSH TABLES; END| DELIMITER ;