문제
다음 상황에서 발생할 수 있는 문제로 가장 옳은 것은?
SQLCREATE TABLE 임시데이터 AS SELECT * FROM 원본테이블;
SQLDROP TABLE 원본테이블;
SQLTRUNCATE TABLE 임시데이터;
① 임시데이터 테이블의 구조가 삭제된다 ② 원본테이블 복구 시 외래키 제약조건이 자동 복원되지 않는다 ③ TRUNCATE 명령을 ROLLBACK으로 취소할 수 있다 ④ 임시데이터의 인덱스 정보가 원본과 동일하게 유지된다
정답
2번
해설
SQLCREATE TABLE AS SELECT는 데이터만 복사하고 제약조건은 복사하지 않는다. 따라서 원본테이블을 DROP 후 복구하더라도 외래키 등 제약조건은 별도로 재생성해야 한다. ① TRUNCATE는 구조를 유지하고 데이터만 삭제한다. ③ TRUNCATE는 DDL로 ROLLBACK 불가하다. ④ 인덱스는 복사되지 않는다.