Я пытаюсь создать функцию на PostgreSQL, и у меня возникла проблема с использованием локальной переменной. Вот мой код:
DECLARE query RECORD;
DECLARE schema_name TEXT;
BEGIN
FOR query IN SELECT * FROM context WHERE created_at + make_interval(days => duration) <= CURRENT_TIMESTAMP LOOP
SELECT lower(quote_ident(query.title)) INTO schema_name;
DROP SCHEMA schema_name CASCADE;
DELETE FROM context WHERE id = query.id;
END LOOP;
RETURN 1;
END;
$$ LANGUAGE plpgsql;
Запросы select и delete работают нормально, и я сделал тест, возвращающий значение schema_name переменная, и все в порядке.
Моя проблема с этой строкой:
DROP SCHEMA schema_name CASCADE;
Я получаю сообщение об ошибке, поскольку "схема" имя_схемы "не существует". Буду очень признателен за любые идеи о том, как использовать эту переменную для выполнения запроса на удаление.