ALTER TABLE
ALTER는 구조 변경보다 영향 범위 점검이 먼저다
컬럼 하나를 바꿔도 기존 데이터, 인덱스, 외래 키, 애플리케이션 SQL, 잠금 시간이 함께 영향을 받는다.
ALTER TABLE employees ADD phone VARCHAR2(20);
| 점검 | 확인할 것 | 실패 신호 |
|---|---|---|
| 기존 데이터 | 새 타입, NOT NULL, 외래 키 조건을 기존 행이 통과하는가 | 변환 실패, NULL 충돌 |
| 잠금 시간 | 대용량 변경이 읽기/쓰기를 오래 대기시키는가 | 배포 중 타임아웃 |
| 의존 객체 | 인덱스, 뷰, 프로시저, 앱 쿼리가 새 구조와 맞는가 | 컴파일 또는 조회 오류 |
| 되돌림 | 백업, 롤백 SQL, 배포 순서가 준비됐는가 | DDL 암묵 커밋 |
| 변경 유형 | 위험도 | 운영 판단 |
|---|---|---|
| 컬럼 추가 | 낮음 | 기본값과 NOT NULL을 함께 넣으면 기존 행 갱신 비용을 확인한다 |
| 타입/크기 변경 | 중간 | 값 잘림, 변환 실패, 인덱스 재구성을 먼저 검증한다 |
| 컬럼/제약 삭제 | 높음 | 앱 코드와 참조 객체가 의존하지 않는지 배포 전에 끊어낸다 |
운영 원칙: “추가할 수 있는가”보다 “서비스가 견딜 수 있는가”를 먼저 확인한다.