mysql - 在 MySql 中删除除一个表之外的所有表

标签 mysql

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

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

DROP ALL TABLES EXCEPT my_table

但这似乎并不存在。有什么想法吗?

最佳答案

您可以使用多个列出的表构建一个 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;

关于mysql - 在 MySql 中删除除一个表之外的所有表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16251224/

相关文章:

php - 如何根据用户的IP地址获取用户的位置?

java - Servlet 中的重复语句 - 最佳实践?

Python MySQLdb 插入问题

mysql - 命令行 MySQL 中的 Unicode 转义序列

mysql 查询在 3 个表中具有多个左连接?

php - 带有 php 的 html 表单无法连接并且也没有显示错误

mysql - Laravel 迁移语法错误或访问冲突 1064

PHP从mysql日期时间导出Excel问题

php - 这段代码的事务和回滚

mysql - 多个订单(日期和时间)在 MYSQL 中不起作用