php - 删除除一个表之外的所有表?

标签 php mysql sql database

我想知道是否有任何方法可以删除我的 bdd 的所有表,除了 php 中名为“keep”的表。像这样的事情:

$sql = 'DROP TABLE * EXEPT 'keep' ';

php 中是否有任何命令可以创建新的 bdd(不是表),或者我是否必须在 phpmyadmin 中执行此操作?

提前致谢!

最佳答案

您可以通过访问 information_schema.tables 表并从中选择适当的架构来创建“删除表”sql 文件。

select concat('drop table ','table_name',';')
  from information_schema.tables
 where table_schema = '[my_schema_name]'
   and table_name != '[the_table_I_don't_want_to_drop]'
INTO OUTFILE '[FILESPEC]';

如果您想列出一组不删除的表,只需将 and 子句更改为“and table_name not in ('table1','table2',...'tableN')”。

你可以在 PHP 中做同样的事情。您只需循环遍历结果并执行结果字符串即可。

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

相关文章:

php - 如何根据 HTML 值在 PHP 中创建 if 语句

javascript - 显示/隐藏 Div 也是固定的

javascript - 我可以将带有文件输入元素的 WebRTC 音频 blob 对象作为普通文件上传但不下载吗?

mysql - 如何从不同的表中计算laravel

mysql - 触发导致 #1054 - 'x' 中的未知列 'where clause'

python - 想要显示图像

sql - 链接服务器登录失败

PHP连接MySQL数据库出错

php - 没有从学说查询中获得预期的输出作为获取 mysql native sql 查询,我正在使用学说2-空间扩展

mysql - 根据以下数据计算排名