在数据库的使用中,表越来越多,占用数据库容量影响运行性能,需要定期清理,一个个表删除不现实,可以按一定规则指定表批量删除,方法有多种,这里介绍一种结合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 )
步骤3:执行批量删除表
将EXCEL生成的SQL代码复制到SQL窗口执行即可;
这个方法虽然很简单,但因为可在 excel上编辑,可以避免误删一些需保留的表,会更加安全可靠;
尊重作者劳动,转载请注明出处:札记-Qianrong's Blog » SQL按规则批量删除指定表的一种简单方法