Как я могу удалить все таблицы из базы данных Firebird 3.0, используя один запрос? - PullRequest
1 голос
/ 10 мая 2019

Я работаю над приложением JSF, которое использует базу данных Firebird 3.0, содержащую сотни таблиц.Мне нужно время от времени удалять все таблицы.

Я проверил этот запрос:

DROP TABLE TABLE_NAME

, но только одна таблица может быть удалена за один раз с помощью этого запроса, и это занимает очень много времени.для программы, у меня может быть другой подход, чтобы отбить это?

1 Ответ

2 голосов
/ 10 мая 2019

Вы можете создать процедуру, в которой удаляются таблицы

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
...