Обрезать все таблицы в Postgres с суффиксом - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть набор таблиц с суффиксом _ABC

Имена таблиц похожи на:

TEST_ABC
MYTB_ABC
AB_1_ER_ABC

Я знаю, что могу сделать:

TRUNCATE TABLE TEST_ABC;

Но я не хочу запускать эти сотни раз.

У меня их сотни. Есть ли способ использовать обычный SQL (только 1 запрос) для усечения таблиц с суффиксом _AB C?

1 Ответ

1 голос
/ 18 апреля 2020

Для этого вам нужно Dynami c SQL. Это можно сделать с помощью анонимного блока PL / pg SQL:

do
$$
declare
  l_sql text;
begin
  select 'truncate '||string_agg(tablename, ',')||' cascade'
     into l_sql
  from pg_tables
  where tablename like '%\_abc' escape '\'
    and schemaname = 'public';
  execute l_sql;
end;
$$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...