SQL按规则批量删除指定表的一种简单方法

在数据库的使用中,表越来越多,占用数据库容量影响运行性能,需要定期清理,一个个表删除不现实,可以按一定规则指定表批量删除,方法有多种,这里介绍一种结合excel生成批量drop table语句的方法,SQL通用(MYSQL、SQL Server、Oracle),且安全可靠。

步骤1:按规则提取表清单

如以下例子,提取表名含”ZQR”的所有表清单及其注释。

SELECT 
 A.OWNER,
 A.TABLE_NAME,
 A.NUM_ROWS, 
 A.LAST_ANALYZED,
 B.COMMENTS
 FROM ALL_ALL_TABLES A, ALL_TAB_COMMENTS B
 WHERE 1 = 1
 AND A.TABLE_NAME = B.TABLE_NAME
 AND A.TABLE_NAME LIKE '%ZQR%'
 AND A.OWNER = 'DEMO'
 ORDER BY A.LAST_ANALYZED DESC, A.NUM_ROWS DESC;

这里是Oracle写法,其他数据库写法也大致相同

步骤2:EXCEL生成批量DROP TABLE 脚本

执行步骤1,结果导出到excel上,删除一些不需要删除的表;
看到这里,大家应该 就知道后面 如何处理了 ,没错,用excel公式生成 批量drop table 代码,
如:
G2=$I$1&B2&”;”
($I$1内容为 DROP TABLE )

SQL_DROP_TABLE_01

步骤3:执行批量删除表
将EXCEL生成的SQL代码复制到SQL窗口执行即可;
这个方法虽然很简单,但因为可在 excel上编辑,可以避免误删一些需保留的表,会更加安全可靠;
示例EXCEL文件下载

尊重作者劳动,转载请注明出处:札记-Qianrong's Blog » SQL按规则批量删除指定表的一种简单方法

赞 (4)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址