Tento skript vygeneruje příkazy DDL, aby je všechny zrušil:
SELECT 'DROP TABLE ' || t.oid::regclass || ';'
FROM pg_class t
-- JOIN pg_namespace n ON n.oid = t.relnamespace -- to select by schema
WHERE t.relkind = 'r'
AND t.relname ~~ E'doors\_%' -- enter search term for table here
-- AND n.nspname ~~ '%myschema%' -- optionally select by schema(s), too
ORDER BY 1;
Přetypovaný t.oid::regclass
umožňuje syntaxi pracovat i pro smíšené identifikátory velkých a malých písmen, vyhrazená slova nebo speciální znaky v názvech tabulek. Zabraňuje také vkládání SQL a v případě potřeby přidává před název schématu. Další informace o typech identifikátorů objektů v příručce
.
O cestě pro vyhledávání schématu.
Můžete také automatizovat vypouštění, ale je to nerozumné nekontrolovat, co vlastně smažete, než to uděláte.
Můžete připojit CASCADE
do každého příkazu DROP závislé objekty (pohledy a odkazování na cizí klíče). Ale to je opět nerozumné pokud moc dobře nevíš, co děláš. Omezení cizích klíčů nepředstavují žádnou velkou ztrátu, ale toto také zcela zruší všechny závislé pohledy. Bez CASCADE
zobrazí se chybové zprávy informující o tom, které objekty vám brání v upuštění tabulky. A pak se s tím můžete vypořádat.