-- -- Table Information -- select r.relname as "Table", c.conname as "Constraint Name", contype as "Constraint Type", conkey as "Key Columns", confkey as "Foreign Columns", consrc as "Source" from pg_class r, pg_constraint c where r.oid = c.conrelid and relname = 'detail_order'; -- -- Default Values of Columns in tables (added types and nullability) -- andrewsn/elein CREATE OR REPLACE VIEW column_info as SELECT n.nspname AS schema_name, r.relname AS table_name, (SELECT CASE WHEN r.relkind = 'r' THEN 'Table' ELSE 'View' END) AS kind, r.oid AS table_oid, a.attname AS column_name, pg_catalog.format_type(a.atttypid, a.atttypmod) AS column_type, (SELECT case WHEN a.attnotnull THEN 'NOT NULL' ELSE '' END) AS nullable, d.adsrc AS default_value, c.consrc AS check_constraint FROM pg_namespace n JOIN pg_class r ON (r.relnamespace = n.oid) JOIN pg_attribute a ON (r.oid = a.attrelid) LEFT OUTER JOIN pg_attrdef d ON (a.attrelid=d.adrelid AND a.attnum = d.adnum) LEFT OUTER JOIN pg_constraint c ON (c.conrelid=r.oid AND a.attnum = ANY (c.conkey) ) WHERE NOT a.attisdropped AND a.attnum > 0 AND has_schema_privilege(n.oid, 'USAGE'::text) AND n.nspname NOT LIKE 'pg!_%' ESCAPE '!' AND has_table_privilege(r.oid, 'SELECT'::text) AND pg_catalog.pg_table_is_visible(r.oid) AND (r.relkind = 'r' OR r.relkind = 'v') ORDER BY n.nspname, r.relname, a.attnum; SELECT schema_name || '.' || table_name || '.' || column_name AS column_name, column_type, nullable, default_value, check_constraint FROM column_info; SELECT rel.nspname, rel.relname, attrs.attname, "Type", "Default", attrs.attnotnull FROM (SELECT c.oid, n.nspname, c.relname FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE pg_catalog.pg_table_is_visible(c.oid) ) rel JOIN (SELECT a.attname, a.attrelid, pg_catalog.format_type(a.atttypid, a.atttypmod) as "Type", (SELECT substring(d.adsrc for 128) FROM pg_catalog.pg_attrdef d WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef) as "Default", a.attnotnull, a.attnum FROM pg_catalog.pg_attribute a WHERE a.attnum > 0 AND NOT a.attisdropped ) attrs ON (attrs.attrelid = rel.oid ) WHERE relname ~ '^issues$' ORDER BY attrs.attnum;