카테고리 없음
[PostgreSQL] 외래키 조회, 삭제, 인덱스 생성
Mr.Ban
2024. 11. 8. 21:52
프로젝트를 하면서 성능 이슈 및 편의성을 위해서 외래키를 삭제하기로 결정하였다.
그와 관련해서 필요한 쿼리들을 모아보았다.
외래키 삭제, 생성 구문을 생성해주는 쿼리들로 간편하게 삭제해보자.
외래키 조회
SELECT
TABLE_NAME,
CONSTRAINT_NAME
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
TABLE_SCHEMA = 'cheonil'
AND REFERENCED_TABLE_NAME IS NOT NULL;
외래키 삭제 구문 생성
SELECT
CONCAT('ALTER TABLE ', TABLE_NAME, ' DROP FOREIGN KEY ', CONSTRAINT_NAME, ';') AS drop_query
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
TABLE_SCHEMA = 'cheonil'
AND REFERENCED_TABLE_NAME IS NOT NULL;
외래키 인덱스 생성 구문
SELECT
CONCAT('CREATE INDEX idx_', COLUMN_NAME, ' ON ', TABLE_NAME, '(', COLUMN_NAME, ');') AS create_index_query
FROM
INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE
TABLE_SCHEMA = 'cheonil'
AND REFERENCED_TABLE_NAME IS NOT NULL;