mysql存储过程动态删除多张表

1.建表出现异常,需要删除表,创建删除表存储过程
DELIMITER $$
CREATE
    PROCEDURE `score`.`dropp`()
    BEGIN
	     DECLARE i INT;
	     DECLARE table_name VARCHAR(20); 
	     DECLARE table_pre VARCHAR(20); 
	     DECLARE sql_text VARCHAR(200); 
	     SET i=1;
	     SET table_name='';
	     SET table_pre='score_stream_';
	     SET sql_text='';
	     WHILE i<16 DO
			IF i<10 THEN SET table_name=CONCAT(table_pre,'0',i);
			ELSE SET table_name=CONCAT(table_pre,i);
			END IF;
			
			SET sql_text=CONCAT('DROP TABLE ', table_name);
				
			SELECT sql_text; 
			SET @sql_text=sql_text;
			PREPARE stmt FROM @sql_text;
			EXECUTE stmt;
			DEALLOCATE PREPARE stmt;  
			SET i=i+1;
	     END WHILE;
    END$$
          
DELIMITER ;


2.执行删除表存储过程
call dropp();


猜你喜欢

转载自825635381.iteye.com/blog/2161292