MySQL如何在存储过程进行切换表

MySQL如何在存储过程进行切换表,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

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 ;

关于MySQL如何在存储过程进行切换表问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。