удаление всех таблиц в схеме базы данных postgres

0 голосов
mnovikov назад в категории Как сделать...

Добрый день

Редакция: Enterprise

Версия: 7.2.8

Необходимо реализовать шаг по удалению всех таблиц в конкретной схеме в базе данных postgres. Для этого использую следующий SQL код : 

DO

$$

DECLARE

    r RECORD;

BEGIN

    FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = 'test') LOOP

        EXECUTE 'DROP TABLE IF EXISTS test.' || quote_ident(r.tablename) || ' CASCADE';

    END LOOP;

END;

$$

подскажите, можно ли реализовать подобный шаг в Loginom ? так как компоненты База данных (Импорт / Экспорт) полагаю для этих целей не подходят

Ответ: 1 шт.

+1 голос
Кирилл М. назад

Данный шаг возможно реализовать в Loginom. Для этого можно использовать компонент «База данных (импорт)». После блока DO необходимо добавить финальный SELECT, чтобы удовлетворить требование узла импорта из Базы данных: «SQL-запрос должен возвращать строки».
Например:

DO $$
DECLARE
    r RECORD;
BEGIN
    FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = 'test') LOOP
        EXECUTE 'DROP TABLE IF EXISTS test.' quote_ident(r.tablename) ' CASCADE';
    END LOOP;
END;
$$;
SELECT 1;
 

В Loginom 7.3.0 планируется добавление компонента SQL - скрипт, который сможет выполнять SQL-запросы, не возвращающие курсоры.

mnovikov назад
Спасибо, все получилось ! Будем ждать выхода новой версии
...