Мне было бы интересно удалить все таблицы в схеме Redshift.Хотя это решение работает
DROP SCHEMA public CASCADE;
CREATE SCHEMA public;
, НЕ хорошо для меня, поскольку оно также отбрасывает разрешения SCHEMA.
Решение, подобное
DO $$ DECLARE
r RECORD;
BEGIN
-- if the schema you operate on is not "current", you will want to
-- replace current_schema() in query with 'schematodeletetablesfrom'
-- *and* update the generate 'DROP...' accordingly.
FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = current_schema()) LOOP
EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE';
END LOOP;
END $$;
, как сообщается в этой теме Как я могу отбросить все таблицы в базе данных PostgreSQL? было бы идеально.К сожалению, он не работает в Redshift (очевидно, нет поддержки for loops
).
Есть ли какое-либо другое решение для достижения этой цели?