Oracle 에서 다음 두 테이블에 데이터가 들어 있을 때, 실행하면 … | [SQLD] SQL 개발자 기출유형 모의고사 9회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 9회
Oracle 에서 다음 두 테이블에 데이터가 들어 있을 때, 실행하면 오류가 발생하는 문장은?CREATE TABLE 영화 ( 영화번호 NUMBER PRIMARY KEY, 제목 VARCHAR2(50) ); CREATE TABLE 상영 ( 상영번호 NUMBER PRIMARY KEY, 영화번호 NUMBER REFERENCES 영화(영화번호), 상영일시 DATE );
1
TRUNCATE TABLE 상영;
2
DROP TABLE 영화 PURGE;
3
ALTER TABLE 상영 DROP COLUMN 상영일시;
4
DROP TABLE 영화 CASCADE CONSTRAINTS;
해설
영화 테이블의 기본키를 상영 테이블의 외래키가 참조하고 있으므로, 옵션 없이 부모인 영화를 DROP 하면 참조 제약 때문에 오류(ORA-02449)가 난다.
PURGE 는 휴지통을 거치지 않고 바로 지우라는 뜻일 뿐 참조 제약 검사는 그대로 받으며, 부모를 지우려면 CASCADE CONSTRAINTS 로 자식의 FK 제약을 함께 없애야 한다.
- 상영 테이블의 일반 열인 상영일시는 제약과 무관해 DROP COLUMN 으로 지울 수 있다.
- 자식 테이블을 TRUNCATE 하는 것은 참조 제약에 걸리지 않는다.
- CASCADE CONSTRAINTS 를 붙이면 상영의 FK 제약이 삭제되며 영화가 지워진다.
오류나 개정된 내용이 보이면 알려주세요