如何使用单个查询从Firebird 3.0数据库中删除所有表?

时间:2019-05-10 07:43:18

标签: firebird drop-table firebird-3.0

我正在研究使用包含数百个表的Firebird 3.0数据库的JSF应用程序。我需要不时删除所有表格。

我已经检查了此查询:

DROP TABLE TABLE_NAME

但是使用此查询一次只能删除一个表,并且该程序非常耗时,我是否可以使用另一种方法来删除它?

1 个答案:

答案 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