MySql、Oracle数据库批量删除多个表

项目场景:

使用Navicat工具直接在界面中删除,只能单张表删除,不能多选。


解决方案:

我们可以通过SQL语句来批量删除多个表,其中test替换成你要查询的数据库名字,注意数据库名称和表名大小写。

一、MySql 数据库

1.生成删除某个数据库下所有的表SQL

-- 查询构建批量删除表语句(根据数据库名称)
select concat('drop table ', TABLE_NAME, ';') from information_schema.TABLES
where TABLE_SCHEMA = 'test';

2.生成删除某个数据库下指定的表名SQL

-- 查询构建批量删除表语句(根据数据库中的表名称模糊查询)
select concat('drop table ', TABLE_NAME, ';') from information_schema.TABLES
where TABLE_SCHEMA = 'test' and TABLE_NAME like 'sys_%';

复制查出来的删除sql语句,并批量执行。

drop table sys_dept;
drop table sys_dict;
drop table sys_log;
drop table sys_log_2022;
drop table sys_menu;
drop table sys_notice;
drop table sys_role;
drop table sys_role_menu;
drop table sys_user;
drop table sys_user_dept;
drop table sys_user_role;
drop table sys_user_token;


 一、Oracle 数据库

1.生成删除某个数据库下所有的表SQL

-- 查询构建批量删除表语句(根据数据库名称)
select 'drop table ' || TABLE_NAME || ';') from all_tables
where owner = 'TEST';

2.生成删除某个数据库下指定的表名SQL

-- 查询构建批量删除表语句(根据数据库中的表名称模糊查询)
select 'drop table ' || TABLE_NAME || ';') from all_tables
where owner = 'TEST' and TABLE_NAME like 'SYS_%';

复制查出来的删除sql语句,并批量执行,注意数据库名称和表名大小写。