我正在研究使用包含数百个表的Firebird 3.0数据库的JSF应用程序。我需要不时删除所有表格。
我已经检查了此查询:
DROP TABLE TABLE_NAME
但是使用此查询一次只能删除一个表,并且该程序非常耗时,我是否可以使用另一种方法来删除它?
答案 0 :(得分:2)
您可以在其中创建删除表的过程
create or alter procedure PRC_DROP_TABLES
as
declare variable TBL varchar(50);
begin
for select r.rdb$relation_name
from rdb$relation_fields r
where
r.rdb$system_flag=0 and r.rdb$view_context is null
-- and r.rdb$relation_name not containing '$' --uncomment and modify this if you what filter tables by condition
group by r.rdb$relation_name
into :tbl do
execute statement 'drop table '||:tbl;
end