Я пытаюсь удалить таблицы, возвращенные из запроса, используя EXECUTE. Вот пример:
CREATE TABLE test_a (id BIGINT);
CREATE TABLE test_b (id BIGINT);
DO
$f$
DECLARE command TEXT;
BEGIN
SELECT INTO command 'SELECT ARRAY_TO_STRING(ARRAY_AGG($$DROP TABLE $$ || table_name), $$;$$) FROM information_schema.tables WHERE table_name ILIKE $$test%$$';
EXECUTE command;
END;
$f$;
Оператор SELECT возвращает «DROP TABLE test_a; DROP TABLE test_b», который я передаю в объявленную переменную и пытаюсь запустить с помощью EXECUTE, но безрезультатно. Что я делаю не так?
PostgreSQL 9.5.18, скомпилированный Visual C++ build 1800, 64-разрядная версия
command := 'your text'
, нет необходимости выбирать. - person 404   schedule 29.10.2019RAISE NOTICE
, чтобы увидеть, что он на самом деле делает. - person 404   schedule 29.10.2019