Useful PostgreSQL utilities
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

32 lines
1.6 KiB

SELECT
n.nspname AS schema,
c.relname AS relname
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE
c.relkind = 'r'::"char"
AND
n.nspname NOT LIKE 'pg_%' AND n.nspname<>'_slony' AND n.nspname<>'information_schema'
AND
NOT EXISTS (
SELECT
pg_catalog.pg_index.indexrelid
FROM pg_catalog.pg_index
WHERE
pg_catalog.pg_index.indrelid=c.oid
AND
pg_catalog.pg_index.indisunique='t'
AND
NOT EXISTS (
SELECT
i_attr.attname
FROM pg_catalog.pg_attribute t_attr
JOIN pg_catalog.pg_attribute i_attr ON i_attr.attname=t_attr.attname AND i_attr.attrelid = pg_catalog.pg_index.indexrelid
WHERE
t_attr.attrelid = c.oid
AND
t_attr.attnotnull <> 't'
)
)
ORDER BY 1,2