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 제약이 삭제되며 영화가 지워진다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 9회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기