-
카테고리
-
세부 분야
데이터베이스
-
해결 여부
미해결
Alter 질문이 있습니다
24.01.07 23:35 작성 조회수 107
0
만약 스키마 생성 후 데이터 적재까지 완료했다고 가정할 때,Alter 구문으로 테이블 스키마 수정 혹은 컬럼 추가를 하게되면 기존에 적재된 데이터는 없어지나요?아니면 그대로 유지되나요? 적재 후 나중에라도 컬럼 추가하거나 PK 추가하고 싶을 때 어떻게 해결하는지 궁금합니다.아예 DROP 하고 처음부터 스키마 생성해서 적재하나요? 좋은 강의 감사합니다.
답변을 작성해보세요.
0
잔재미코딩 DaveLee
지식공유자2024.01.09
안녕하세요. 답변 도우미입니다.
일반적으로 ALTER
구문을 사용하여 테이블 스키마를 수정하거나 컬럼을 추가할 때 기존에 적재된 데이터는 유지됩니다. 예를 들어, 새로운 컬럼을 추가하면 해당 컬럼은 기존 행에 대해 NULL
값이나, 설정된 디폴트 값으로 채워집니다.
하지만 주의해야 할 부분이 있습니다. 기존 컬럼의 데이터 타입을 변경하거나, NOT NULL 제약을 추가하는 등의 변경사항이 기존 데이터와 충돌할 경우, 오류가 발생할 수 있습니다. 예를 들어, VARCHAR
컬럼을 INT
로 변경하려 할 때 해당 컬럼에 문자열 데이터가 있다면 문제가 될 것입니다.
기본키(PK) 추가에 관해서는, 기존 데이터가 새로운 PK 규칙을 위반하지 않는 한, 기존 데이터에 영향을 주지 않고 PK를 추가할 수 있습니다. 만약 기존 데이터가 새 PK 규칙에 부합하지 않는다면, 해당 데이터를 수정하거나 삭제해야 PK를 추가할 수 있습니다.
테이블을 완전히 다시 설계해야 하는 상황이라면, 테이블을 DROP 하고 새로운 스키마로 다시 생성할 수 있습니다. 하지만 이 경우 기존 데이터는 모두 손실된다는 점도 알고 유의하시면 좋을 것 같습니다. DROP 전 필요 데이터가 있다면 보통은 백업을 해놓고 DROP 을 진행합니다.
감사합니다.
답변 1