업무 진행 중에 기존 테이블에 새 컬럼을 추가할 일이 생겼습니다.
"고객"이라는 테이블에 "MZ_YN(MZ세대 여부)"라는 컬럼을 추가한다고 할 때 기존 컬럼인 "생년월일"의 값을 확인하여 2000년 이전 출생자면 "Y"를, 아닌 경우 "N"으로 값을 설정해야 한다고 가정하면 컬럼 추가 쿼리(ALTER)만으로 해당 요구사항을 충족시킬 수 있을까요? 있다면 어떻게 해야할까요?
불가능하다면 컬럼 추가 후 추가 쿼리실행을 통해 추가한 컬럼에 값을 삽입해줘야 하는지 궁금합니다!
1. 컬럼추가가 필요한지요?
2. 운영중인 db 고 데이터양이 많으면
a. 다른테이블명으로 같은 내용+ 컬럼 으로 생성후 데이터 이행
b 테이블 / 인덱스 renmae 하시면 운영시간 중단을 최소화가 가능합니다.
c. 개발 소스도 같이 수정되면 완료
3. .그런데 sql만 수정하시면 되는데 굳이 힘든 작업을 하시는지 모르겠네요.
1. 위에서 설명한 상황은 예시입니다. 서비스 기능 추가로 인해 데이터 추가가 필수인 상황입니다.
2. 운영DB 확인해보니 데이터가 약 38만개 정도 되네요. 말씀해주신 방법도 고려해보도록 하겠습니다.
답변 감사합니다.
추가 하자면
데이터 이행은 사전이행 개념으로 가져가셔야 합니다.
38만건이면 그냥 개발에서 테스트 하시고 바로 이행해도 될것 같네요.
운영중인 테이블에 컬럼 추가는 문제 생길 여지가 있어서 테이블 이행후 RENAME추천합니다.
-- 1. 뷰를 이용하는 방안 --
CREATE OR REPLACE VIEW v_cust
IS
SELECT a.*
, CASE WHEN birth_ymd >= '20000101' THEN 'Y' ELSE 'N' END mz_yn
FROM t_cust a
;