[PostgreSQL] 특정 컬럼명을 사용하는 모든 테이블 찾는 쿼리
PostgreSQL에서 특정 컬럼명을 사용하는 모든 테이블 찾는 방법은 information_schema.columns 또는 pg_catalog를 사용하면 됩니다.
SELECT
table_schema,
table_name,
column_name
FROM information_schema.columns
WHERE column_name = '컬럼명'
ORDER BY table_schema, table_name;
대소문자 구분 없이 찾기
SELECT
table_schema,
table_name,
column_name
FROM information_schema.columns
WHERE LOWER(column_name) = LOWER('user_id')
ORDER BY table_schema, table_name;
특정 스키마만 조회
SELECT
table_name,
column_name
FROM information_schema.columns
WHERE column_name = 'user_id'
AND table_schema = 'public';
LIKE 검색 (비슷한 컬럼명 찾기)
SELECT
table_schema,
table_name,
column_name
FROM information_schema.columns
WHERE column_name LIKE '%user%'
ORDER BY table_name;
시스템 카탈로그 (조금 더 빠름 / 고급)
SELECT
n.nspname AS schema_name,
c.relname AS table_name,
a.attname AS column_name
FROM pg_attribute a
JOIN pg_class c ON a.attrelid = c.oid
JOIN pg_namespace n ON c.relnamespace = n.oid
WHERE a.attname = 'user_id'
AND c.relkind = 'r' -- 일반 테이블
AND a.attnum > 0
AND NOT a.attisdropped;



