요약

  • 특정 schema에 속한 컬럼, 함수, 시퀀스, 테이블 정보 조회
  • ROUTINES, TABLES, SEQUENCES, COLUMNS, table_constraints, key_column_usage

1. 함수 목록

SELECT routine_schema, routine_name, routine_type
FROM INFORMATION_SCHEMA.ROUTINES
WHERE routine_type = 'FUNCTION';  -- 또는 'PROCEDURE'

2. 테이블 목록

-- 특정 스키마 내 테이블 목록
SELECT table_schema, table_name
FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = '스키마명';
 
-- VIEW 테이블만
SELECT table_schema, table_name, table_type
FROM INFORMATION_SCHEMA.TABLES
WHERE table_type = 'VIEW';

3. 컬럼 목록

-- 특정 테이블 내 컬럼 목록
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = '테이블명';
 
-- 특정 컬럼 존재 여부
SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = '테이블명' AND column_name = '컬럼명';
 
-- amt로 끝나는 열 목록
SELECT table_name, column_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = '테이블명' AND column_name LIKE '%amt';

4. PK 제약조건 조회

SELECT a.constraint_schema,
       a.constraint_name,
       a.table_name,
       b.column_name
FROM information_schema.table_constraints a
LEFT JOIN information_schema.key_column_usage b
    ON a.constraint_name = b.constraint_name
WHERE a.constraint_type = 'PRIMARY KEY';

참고사이트