뷰(View) 수정 및 삭제 – MySQL에서 안전하게 다루는 법
뷰(View)는 복잡한 SQL 쿼리를 간단하게 만들어주는 가상 테이블입니다. 하지만 유지보수를 위해서는 뷰 수정 및 삭제 방법을 정확히 알아야 합니다. 아래에서 ALTER VIEW, DROP VIEW, 그리고 관련 주의사항을 정리해드리겠습니다.
✅ 1. 뷰 수정 (ALTER VIEW)
기존 뷰의 구조나 SELECT 문을 변경할 때 사용합니다.
📌 문법
ALTER VIEW 뷰이름 AS
SELECT 필드1, 필드2, ...
FROM 테이블명
WHERE 조건;
📌 예제
MyView 뷰를 수정하여 Reservation 테이블에서 ID와 Name만 조회하도록 변경:
ALTER VIEW MyView AS
SELECT ID, Name
FROM Reservation;
🗑️ 2. 뷰 삭제 (DROP VIEW)
뷰가 더 이상 필요 없거나, 구조를 재설계할 때 뷰를 제거할 수 있습니다.
📌 문법
DROP VIEW 뷰이름;
📌 예제
DROP VIEW MyView;
→ MyView라는 뷰를 삭제합니다.
⚠️ 3. 뷰 수정 및 삭제 시 주의사항
🔸 1. 의존성 문제
- 뷰가 참조하는 테이블이나 다른 뷰가 변경되면 오류 발생 가능.
- 뷰 삭제 시, 이를 참조하는 쿼리, 앱, 리포트에 영향을 줄 수 있음.
🔸 2. 권장: CREATE OR REPLACE VIEW
ALTER VIEW대신 아래와 같이 쓰는 것이 더 유연합니다:
CREATE OR REPLACE VIEW MyView AS
SELECT ID, Name
FROM Reservation;
- 장점:
- 뷰가 없으면 생성
- 있으면 자동 대체
🔸 3. DROP VIEW는 원본 테이블에 영향을 주지 않음
- 뷰 삭제는 안전하지만, 뷰를 참조하는 다른 요소가 있다면 오류 유발 가능.
🧾 4. 요약 비교표
| 명령어 | 설명 | 특징 |
|---|---|---|
ALTER VIEW |
기존 뷰 수정 | SELECT 구조 변경 |
DROP VIEW |
뷰 삭제 | 원본 테이블 영향 없음 |
CREATE OR REPLACE VIEW |
뷰 생성 또는 대체 | 권장 방식 |
질문 정리
❓ 뷰를 수정하면 기존 데이터도 바뀌나요?
뷰는 데이터를 저장하지 않기 때문에, SELECT 문만 변경되며 원본 데이터는 영향을 받지 않습니다.
❓ DROP VIEW를 했는데 테이블 데이터는 그대로인가요?
예, 뷰는 가상의 테이블이므로 삭제해도 원본 테이블 데이터에는 전혀 영향이 없습니다.
❓ ALTER VIEW와 CREATE OR REPLACE VIEW 중 무엇이 더 좋나요?
일반적으로 CREATE OR REPLACE VIEW가 더 안정적이고 유연한 방식입니다.
댓글남기기