删除MySql中除One之外的所有表

ARM*_*DON 7 mysql

我的数据库中有100个表,我只想保留一个.

我尝试过类似下面的查询:

DROP ALL TABLES EXCEPT my_table
Run Code Online (Sandbox Code Playgroud)

但这似乎并不存在.任何的想法?

Dev*_*art 14

您可以使用多个列出的表构建DROP TABLE语句,并使用MySQL预处理语句运行查询 -

SET @tables = NULL;
SELECT GROUP_CONCAT(table_schema, '.', table_name) INTO @tables FROM information_schema.tables 
  WHERE table_schema = 'Database1' AND table_name <> 'my_table';

SET @tables = CONCAT('DROP TABLE ', @tables);
PREPARE stmt1 FROM @tables;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
Run Code Online (Sandbox Code Playgroud)