Detta skript kommer att generera DDL-kommandon för att släppa dem alla:
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;
Medverkande t.oid::regclass
gör att syntaxen fungerar även för identifierare med blandade skiftlägen, reserverade ord eller specialtecken i tabellnamn. Det förhindrar också SQL-injektion och lägger till schemanamnet vid behov. Mer om objektidentifieringstyper i manualen
.
Du kan automatisera borttagningen också, men det är oklokt inte kontrollera vad du faktiskt tar bort innan du gör det.
Du kan lägga till CASCADE
till varje uttalande att DROP beroende objekt (vyer och referens till främmande nycklar). Men återigen, det är oklokt om du inte vet mycket väl vad du gör. Utländska nyckelbegränsningar är ingen stor förlust, men detta kommer också att ta bort alla beroende åsikter helt. Utan CASCADE
du får felmeddelanden som informerar dig om vilka objekt som hindrar dig från att släppa tabellen. Och du kan sedan ta itu med det.