PostgreSQLis luuakse uus andmebaas tehes koopia
mallandmebaasist (
template1). Ülikasutaja õigustes kasutaja saab
template1 andmebaasi muuta. Kõik sellesse lisatud andmebaasiobjektid tekivad peale lisamist selle malli põhjal loodud andmebaasidesse.
Palun ärge lisage oma andmebaasiobjekte
template1 andmebaasi! Kui olete seda kogemata teinud, siis kustutage need sealt. Kui avastate peale andmebaasi loomist enda andmebaasist kellegi teise loodud andmebaasiobjektid, siis tuleb need kustutada.
Järgnevad käsud saab käivitada psqlis (pgAdminis valige selleks andmebaas ja siis menüüst
Tools=>PSQL Tool).
Käsk 1: Kustuta kõik kasutajate skeemides olevad tabelid ja nendest sõltuvad andmebaasiobjektid (nt vaated, rutiinid, trigerid).
SELECT format('DROP TABLE %1$I.%2$I CASCADE;', table_schema, table_name) AS statements
FROM INFORMATION_SCHEMA.tables AS t INNER JOIN INFORMATION_SCHEMA.schemata AS s ON t.table_schema=s.schema_name
WHERE schema_name='public'
OR schema_owner<>'postgres'
\gexec
Käsk 2: Kustuta kõik kasutajate skeemides olevad domeenid.
SELECT format('DROP DOMAIN %1$I.%2$I CASCADE;', domain_schema, domain_name) AS statements
FROM INFORMATION_SCHEMA.domains AS d INNER JOIN INFORMATION_SCHEMA.schemata AS s ON d.domain_schema=s.schema_name
WHERE schema_name='public'
OR schema_owner<>'postgres'
\gexec
Käsk 3: Kustuta kõik kasutajate skeemid, v.a.
public.
SELECT format('DROP SCHEMA %1$I CASCADE;', schema_name) AS statements
FROM INFORMATION_SCHEMA.schemata AS s
WHERE schema_name<>'public'
AND schema_owner<>'postgres'
\gexec
gexec käsk võimaldab päringuga koostatud SQL laused automaatselt käivitada.