21 changed files with 114 additions and 147 deletions
@ -1,3 +1,2 @@
@@ -1,3 +1,2 @@
|
||||
|
||||
select pc1.oid::regclass||'.'||pa1.attname, pt1.typname, pc2.relname||'.'||pa2.attname, pt2.typname from pg_constraint pco join pg_class pc1 on pc1.oid=conrelid join pg_class pc2 on pc2.oid=confrelid join pg_attribute pa1 on pa1.attnum=conkey[1] and pa1.attrelid=conrelid join pg_attribute pa2 on pa2.attnum=confkey[1] and pa2.attrelid=confrelid join pg_type pt1 on pt1.oid=pa1.atttypid join pg_type pt2 on pt2.oid=pa2.atttypid where pa1.atttypid<>pa2.atttypid and contype='f' order by 1,2; |
||||
select pc1.oid::regclass||'.'||pa1.attname as "table_column1", pt1.typname, pc2.relname||'.'||pa2.attname as "table_column2", pt2.typname from pg_constraint pco join pg_class pc1 on pc1.oid=conrelid join pg_class pc2 on pc2.oid=confrelid join pg_attribute pa1 on pa1.attnum=conkey[1] and pa1.attrelid=conrelid join pg_attribute pa2 on pa2.attnum=confkey[1] and pa2.attrelid=confrelid join pg_type pt1 on pt1.oid=pa1.atttypid join pg_type pt2 on pt2.oid=pa2.atttypid where pa1.atttypid<>pa2.atttypid and contype='f' order by 1,2; |
||||
|
||||
|
||||
@ -1,32 +1,31 @@
@@ -1,32 +1,31 @@
|
||||
SELECT |
||||
n.nspname ||'.'||c.relname AS table |
||||
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 |
||||
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 |
||||
pg_catalog.pg_index.indexrelid |
||||
FROM pg_catalog.pg_index |
||||
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 |
||||
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 |
||||
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 |
||||
t_attr.attnotnull <> 't' |
||||
) |
||||
) |
||||
ORDER BY 1,2 |
||||
|
||||
|
||||
Loading…
Reference in new issue