Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中一次性删除多个表_Mysql_Sql_Multiple Tables_Drop Table - Fatal编程技术网

在MySQL中一次性删除多个表

在MySQL中一次性删除多个表,mysql,sql,multiple-tables,drop-table,Mysql,Sql,Multiple Tables,Drop Table,如何一次命令从一个数据库中删除多个表。 大概 > use test; > drop table a,b,c; 其中a、b、c是数据库测试中的表。示例: 假设表A有两个子项B和C。然后我们可以使用以下语法删除所有表 DROP TABLE IF EXISTS B,C,A; 这可以放在脚本的开头,而不是单独删除每个表 SET foreign_key_checks = 0; DROP TABLE IF EXISTS a,b,c; SET foreign_key_checks = 1;

如何一次命令从一个数据库中删除多个表。 大概

> use test; 
> drop table a,b,c;
其中a、b、c是数据库测试中的表。

示例:

假设表A有两个子项B和C。然后我们可以使用以下语法删除所有表

DROP TABLE IF EXISTS B,C,A;
这可以放在脚本的开头,而不是单独删除每个表

SET foreign_key_checks = 0;
DROP TABLE IF EXISTS a,b,c;
SET foreign_key_checks = 1;
然后,您不必担心按正确的顺序删除它们,也不必担心它们是否确实存在


注意:这仅适用于MySQL(如问题中所述)。其他数据库可能有不同的方法来执行此操作。

如果有很多表要删除,则这是一种懒惰的方法

declare @sql1 nvarchar(max) 
SELECT @sql1 =
  STUFF(
         (
           select ' drop table dbo.[' + name + ']'

           FROM sys.sysobjects AS sobjects
           WHERE (xtype = 'U') AND (name LIKE 'GROUP_BASE_NEW_WORK_%')
           for xml path('')
        ),
     1, 1, '')

  execute sp_executesql @sql1
  • 使用下面的

    • 对于sql server-从SYS.tables中选择CONCAT(名称,,)Table_name
    • 对于oralce-从SYS.ALL_TABLES中选择CONCAT(TABLE_NAME,,)
  • 从结果集中复制和粘贴表名,并在DROP命令后粘贴


  • 根据下面的答案,您已经回答了自己的问题。在HeidiSQL中,您可以按表名(上部文本框)过滤表,将
    DROP TABLE
    写入查询,然后双击每个所需表,将其名称附加到查询中(在它们之间加逗号),然后点击F9执行。有点离题,但我来这里就是为了这个。对于那些想要删除多个具有相同前缀的表的人来说,因为
    删除表表\u前缀*
    不适用于星号字符:也许值得指出的是,这些表根本不需要有任何关系。它们可以是完全独立的,并且这种语法仍然可以工作。通过打开fkey检查(y),您将我从很多麻烦中解救出来。