호환성 검사
타입 변경
기존 값이 새 범위를 벗어나면 ALTER 자체가 실패합니다.
VARCHAR(100) -> VARCHAR(50) 100자 데이터가 남아 있으면 실패
먼저 할 일
최대 길이와 형변환 불가 행을 미리 조회합니다.
ALTER는 저장된 데이터 전체 위에서 실행되고, 실행 시간에는 실제 서비스 요청과 부딪힙니다. 그래서 변경 종류가 달라도 먼저 검사하는 기준은 같습니다.
기존 값이 새 범위를 벗어나면 ALTER 자체가 실패합니다.
VARCHAR(100) -> VARCHAR(50) 100자 데이터가 남아 있으면 실패
NULL이 하나라도 남아 있으면 새 제약을 바로 통과하지 못합니다.
UPDATE employees SET phone = 'N/A' WHERE phone IS NULL;
오래 걸리거나 잠금이 생기면 서비스 요청이 대기할 수 있습니다.
긴 실행 시간 잠금 가능 요청 지연
ALTER TABLE은 정의만 바꾸는 명령이 아니라, 기존 데이터와 현재 운영 상태가 새 규칙을 견딜 수 있는지 확인한 뒤 적용하는 작업입니다.