· 6 years ago · Oct 28, 2019, 04:58 PM
1DROP PROCEDURE IF EXISTS `drop_all_tables`;
2
3DELIMITER $$
4CREATE PROCEDURE `drop_all_tables`()
5BEGIN
6 DECLARE _done INT DEFAULT FALSE;
7 DECLARE _tableName VARCHAR(255);
8 DECLARE _cursor CURSOR FOR
9 SELECT table_name
10 FROM information_schema.TABLES
11 WHERE table_schema = SCHEMA();
12 DECLARE CONTINUE HANDLER FOR NOT FOUND SET _done = TRUE;
13
14 SET FOREIGN_KEY_CHECKS = 0;
15
16 OPEN _cursor;
17
18 REPEAT FETCH _cursor INTO _tableName;
19
20 IF NOT _done THEN
21 SET @stmt_sql = CONCAT('DROP TABLE ', _tableName);
22 PREPARE stmt1 FROM @stmt_sql;
23 EXECUTE stmt1;
24 DEALLOCATE PREPARE stmt1;
25 END IF;
26
27 UNTIL _done END REPEAT;
28
29 CLOSE _cursor;
30 SET FOREIGN_KEY_CHECKS = 1;
31END$$
32
33DELIMITER ;
34
35call drop_all_tables();
36
37DROP PROCEDURE IF EXISTS `drop_all_tables`;