如何使用命令提示符删除Windows MySQL中的所有表?我想这样做的原因是,我们的用户有权删除数据库,但无权重新创建数据库本身,因此我们必须手动删除表.有没有办法一次放下所有的桌子?请记住,大多数表都与外键链接,因此必须按特定顺序删除它们.

推荐答案

您可以生成如下语句:DROP TABLE t1, t2, t3, ...,然后使用准备好的语句执行它:

SET FOREIGN_KEY_CHECKS = 0; 
SET @tables = NULL;
SELECT GROUP_CONCAT('`', table_schema, '`.`', table_name, '`') INTO @tables
  FROM information_schema.tables 
  WHERE table_schema = 'database_name'; -- specify DB name here.

SET @tables = CONCAT('DROP TABLE ', @tables);
PREPARE stmt FROM @tables;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
SET FOREIGN_KEY_CHECKS = 1; 

Mysql相关问答推荐

如何获得表中只有最大值行的一个列被另一个列分区?

MySQL多连接以获得单个结果集(使用MySQL max函数)

SQL MaxSum查询为列 Select 了不正确的值

在MySQL和JavaFX中保存和检索图像文件

递归查询意外地为一个字段返回空值

在两个日期之间生成每个月的1行数据.

将 JSON 类型的列与特定字符串值进行比较

MySQL如何在触发器内部 Select 多行然后插入它们

「已解决」MySQL 连接在 vb6 上出现运行时错误 -2147467259 (80004005),但在 VBA Excel 上工作

为什么order by子句可以利用索引?

如何在更新语句中使用多个子字符串函数?

MYSQL LOAD DATA INFILE 语句适用于工作台,但不适用于 python

用两个新列制作表格,按偶数或奇数对另一列进行分类,并将一个类别中的所有偶数和奇数相加

不是唯一的表/别名

有没有办法在 Zend Framework 1.5 中执行INSERT...ON DUPLICATE KEY UPDATE?

MySQL触发器在某些条件下防止INSERT

MySQL - 基于同一表中的行求和列值

MySQL:ALTER IGNORE TABLE 给出违反完整性约束

Yii2 如何进行 where AND 或 OR 条件分组?

MySQL合并两列并添加到一个新列中