저와 같은 현상으로 보이는 글이 있었으나 답변이 완료되어 있지 않아서 새로 질문 올립니다.
(DBA님의 ON DELETE CASCADE .. ?)
B 테이블이 A 테이블을 FK로 참조하고 있고, on delete cascade 조건을 줘서 A테이블의 row를 삭제시 참조하고 있는 B 테이블의 row 들을 지우고 싶습니다.
대략의 DDL은 다음과 같습니다.
create table A (
num integer,
name varchar(10)
);
alter table A add constraint ( primary key (num) constraint pk_A );
create table B (
num integer,
content varchar(20)
);
alter table B add constraint ( primary key (num, content) );
alter table B add constraint ( foreign key (num) references A on delete cascade constraint fk_B_num );
위와 같은 상태에서 A 테이블의 row를 삭제하면 A 테이블의 PK 에러가 납니다.
에러 메세지는
(pk_A) is still referenced
이런 식으로 나는데요, 원인과 해결책을 알려주시면 감사하겠습니다.
|