首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在不删除数据库本身的情况下删除数据库中的所有表?

如何在不删除数据库本身的情况下删除数据库中的所有表?
EN

Stack Overflow用户
提问于 2010-08-16 20:52:32
回答 10查看 35.7K关注 0票数 21

我想从数据库中删除所有的表,但不删除数据库本身。有可能吗?我只是在寻找比删除数据库并重新创建它更短的方法。谢谢!

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2010-08-16 21:09:08

最短的是重新创建数据库。但如果你不想..。

这是针对MySQL/PHP的。没有经过测试,但类似的东西。

代码语言:javascript
复制
$mysqli = new mysqli("host", "my_user", "my_password", "database");
$mysqli->query('SET foreign_key_checks = 0');
if ($result = $mysqli->query("SHOW TABLES"))
{
    while($row = $result->fetch_array(MYSQLI_NUM))
    {
        $mysqli->query('DROP TABLE IF EXISTS '.$row[0]);
    }
}

$mysqli->query('SET foreign_key_checks = 1');
$mysqli->close();
票数 39
EN

Stack Overflow用户

发布于 2010-08-16 20:58:21

没有简单的方法可以做到这一点。要么你需要提前知道这些表是什么:

//edit您可以使用查询SHOW TABLE STATUS获取此信息

代码语言:javascript
复制
$tables = array('users','otherdata');
foreach($tables as $table){
  db.execute("DROP TABLE "+$table);
}

或者,您可以删除数据库并重新创建它为空(这真的不是很费力!):

代码语言:javascript
复制
db.execute('DROP DATABASE SITEDATA');
db.execute('CREATE DATABASE SITEDATA');
票数 5
EN

Stack Overflow用户

发布于 2010-08-16 20:59:02

您必须分别删除数据库中的每个表,因此删除数据库并重新创建它实际上是最短的路径(也是最快的路径)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3493253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档