Find tables with specific column name in PostgreSQL database

Query below finds all tables that have 'last_name' column.

See also tables that don't have a column with specific name.

Query

select t.table_schema,
       t.table_name
from information_schema.tables t
inner join information_schema.columns c on c.table_name = t.table_name 
                                and c.table_schema = t.table_schema
where c.column_name = 'last_name'
      and t.table_schema not in ('information_schema', 'pg_catalog')
      and t.table_type = 'BASE TABLE'
order by t.table_schema;

Columns

  • table_schema - name of schema of found table
  • table_name - name of found table

Rows

  • One row represents a table
  • Scope of rows: all found tables
  • Ordered by table schema

Sample results

List of tables that have 'last_name' column.