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语句,并批量执行,注意数据库名称和表名大小写。