ALTER TABLE 실행 전 판정축

문법보다 먼저 보는 것은 기존 행과 운영 시점입니다.

ALTER는 저장된 데이터 전체 위에서 실행되고, 실행 시간에는 실제 서비스 요청과 부딪힙니다. 그래서 변경 종류가 달라도 먼저 검사하는 기준은 같습니다.

데이터 통과 기존 값이 새 타입·새 제약을 만족해야 실행됩니다.
운영 통과 긴 실행 시간과 잠금 가능성을 감당할 시간대여야 합니다.
시작 ALTER 요청
공통 검사 1 기존 행이 새 규칙을 통과하는가
공통 검사 2 실행 중 서비스 지연을 허용할 수 있는가
통과 시 유지보수 창에 적용
호환성 검사

타입 변경

기존 값이 새 범위를 벗어나면 ALTER 자체가 실패합니다.

VARCHAR(100) -> VARCHAR(50)
100자 데이터가 남아 있으면 실패
먼저 할 일 최대 길이와 형변환 불가 행을 미리 조회합니다.
제약 추가

NOT NULL 추가

NULL이 하나라도 남아 있으면 새 제약을 바로 통과하지 못합니다.

UPDATE employees
SET phone = 'N/A'
WHERE phone IS NULL;
먼저 할 일 NULL을 채운 뒤 제약을 추가하고 개수를 다시 확인합니다.
운영 영향

대용량 테이블 ALTER

오래 걸리거나 잠금이 생기면 서비스 요청이 대기할 수 있습니다.

긴 실행 시간
잠금 가능
요청 지연
먼저 할 일 운영 시간대를 피하고 유지보수 창에서 실행 시간을 예측합니다.
Takeaway

ALTER TABLE은 정의만 바꾸는 명령이 아니라, 기존 데이터와 현재 운영 상태가 새 규칙을 견딜 수 있는지 확인한 뒤 적용하는 작업입니다.