Ten skrypt wygeneruje polecenia DDL, aby usunąć je wszystkie:
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;
Obsada t.oid::regclass
sprawia, że składnia działa również dla identyfikatorów o różnej wielkości liter, słów zastrzeżonych lub znaków specjalnych w nazwach tabel. Zapobiega również wstrzykiwaniu SQL i dołącza nazwę schematu w razie potrzeby. Więcej informacji o typach identyfikatorów obiektów w podręczniku
.
Informacje o ścieżce wyszukiwania schematu.
Możesz też zautomatyzować upuszczanie, ale jest to nierozsądne nie sprawdzać, co faktycznie usuwasz, zanim to zrobisz.
Możesz dołączyć CASCADE
do każdej instrukcji do obiektów zależnych DROP (widoki i odwołujące się do kluczy obcych). Ale znowu, to nierozsądne chyba że bardzo dobrze wiesz, co robisz. Ograniczenia klucza obcego nie są dużą stratą, ale spowoduje to również całkowite porzucenie wszystkich zależnych widoków. Bez CASCADE
otrzymujesz komunikaty o błędach informujące, które obiekty uniemożliwiają upuszczenie tabeli. I możesz sobie z tym poradzić.