먼저, ORA-02292가 생기는 이유는 다음과 같다.
현재 삭제할려는 테이블의 PK 데이터가
다른 테이블의 데이터의 FK값으로 엮여 있는 경우에 생기는 문제이다.
예를 들어 테이블 생성 시
-- 부모테이블
b_idx number primary key,
writer varchar2(50) not null,
title varchar2(50) not null,
content clob,
pw varchar2(20),
hit number,
ip varchar2(15),
filename varchar2(100),
reg_date date);
-- 자식테이블
create table comment_t(
c_idx number primary key,
writer varchar2(50) not null,
content clob,
pw varchar2(20),
ip varchar2(15),
reg_date date,
b_idx number references bbs_t(b_idx));
을 만든다고 할 때, 단순히 "ON DELETE CASCADE" 구문을 추가해서 만들면 된다.
create table comment_t(
c_idx number primary key,
writer varchar2(50) not null,
content clob,
pw varchar2(20),
ip varchar2(15),
reg_date date,
b_idx number references bbs_t(b_idx) ON DELETE CASCADE );