If you ever need a progmatic way to drop all tables in a database, you can use the following stored procedure:
DELIMITER $$
DROP PROCEDURE IF EXISTS `drop_all_tables_from` $$
CREATE PROCEDURE `drop_all_tables_from`(IN schema_target VARCHAR(128)) BEGIN DECLARE table_list TEXT;
SELECT GROUP_CONCAT(`TABLE_NAME`) INTO table_list FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA` = schema_target;
IF table_list IS NOT NULL THEN SET @drop_tables = CONCAT("DROP TABLE ", table_list);
PREPARE stmt FROM @drop_tables;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;
END $$
DELIMITER ;To use, simply call the procedure with the database name as the parameter:
CALL drop_all_tables_from("database_name");
Note: This will drop all tables, without confirmation for the database name provided.
Quele: https://dor.ky/mysql-procedure-drop-all-tables-in-database/
Tags