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

Mis*_*hko 21 php mysql sql drop-table

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

Tom*_*ski 36

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

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

$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();
Run Code Online (Sandbox Code Playgroud)


fre*_*ley 5

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

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

$tables = array('users','otherdata');
foreach($tables as $table){
  db.execute("DROP TABLE "+$table);
}
Run Code Online (Sandbox Code Playgroud)

或者你可以删除数据库并重新创建它(这真的不是那么多努力!):

db.execute('DROP DATABASE SITEDATA');
db.execute('CREATE DATABASE SITEDATA');
Run Code Online (Sandbox Code Playgroud)