MySQL 儲存過程進行切換表

G8bao7發表於2020-04-21
DELIMITER $$
DROP PROCEDURE IF EXISTS `sp_revoke_table`$$
CREATE DEFINER=`root`@`%` PROCEDURE `sp_revoke_table`(p_table_name VARCHAR(100))
BEGIN
	SET @t_tb_src = p_table_name;
	SELECT CONCAT("create table _tmpdba like ", @t_tb_src) INTO @t_sql FROM DUAL;
	PREPARE stmt_1 FROM @t_sql;
	EXECUTE  stmt_1;
	DEALLOCATE PREPARE stmt_1;	
	
	SELECT CONCAT("_", @t_tb_src, "_",  DATE_FORMAT(NOW(),'%Y%m%d_%H%i%s'), "_del") INTO @t_table_today FROM DUAL;
	SELECT CONCAT("rename table ", @t_tb_src, " TO ",@t_table_today, ", _tmpdba to ", @t_tb_src ) INTO @t_sql FROM DUAL;
	PREPARE stmt_2 FROM @t_sql;
	EXECUTE  stmt_2;
	DEALLOCATE PREPARE stmt_2;
	
    END$$
DELIMITER ;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26250550/viewspace-2687344/,如需轉載,請註明出處,否則將追究法律責任。

相關文章