테이블 생성
create table p (
pdtno number(3) not null,
pdtname varchar2(25),
qty number(6, 2),
constraint pdtnopk primary key(pdtno)
);
create table pc (
pdtno number(3) not null,
constraint pdtnofk foreign key(pdtno) references p(pdtno)
);
이렇게 하면 pc(pdtno)가 p(pdtno)를 참조한다.
따라서 p 테이블의 레코드는 맘대로 삭제도 못 함.
그러나 pc 테이블을 다음과 같이 생성하면,
create table pc (
pdtno number(3) not null,
constraint pdtnofk foreign key(pdtno) references p(pdtno) on delete cascade
);
p 테이블의 레코드를 삭제하면 pc 테이블의 레코드가 연쇄적으로 삭제된다.
on delete cascade 이외에 on delete set null 라는 제약도 있다.
부모 레코드가 삭제되면 자식 레코드가 null이 된다.