2011-04-07 4 views
3

oracle에 트리가있는 테이블이 있습니다.외래 키가 동일한 테이블에있을 때 oracle에서 계단식 삭제를 추가하는 방법

MY_TABLE 
node_id 
parent_id 

트리 루트에 부모가 없을 때 어떻게 계단식 삭제를 추가합니까?

지금은 부모 ID가 루트로 -1로 설정되어 있습니다. 나는이 때 나는 다음과 같은 오류 얻을 :

Error starting at line 1 in command: 
ALTER TABLE regional_defaults_working 
add CONSTRAINT regional_defaults_wk_delete 
    FOREIGN KEY (parent_id) 
    REFERENCES regional_defaults_working(node_id) 
    ON DELETE CASCADE 
Error report: 
SQL Error: ORA-02298: cannot validate (XVTEST.REGIONAL_DEFAULTS_WK_DELETE) - parent keys not found 
02298. 00000 - "cannot validate (%s.%s) - parent keys not found" 
*Cause: an alter table validating constraint failed because the table has 
      child records. 

답변

4

이 일을하거나하지 않을 경우 내가 기억하지 수 있지만, 내 첫 번째 충동 PARENT_ID = NULL 루트 설정 말을하는 것입니다.

+0

아 물론 ... 내가 게시하기 전에 그것을 알아 낸 직후에 답변을 게시하십시오.) – testing123

1

알아 냈어.

키 (말장난 없음)는 parent_id를 Null 허용으로 설정 한 다음 루트를 null로 설정하는 것입니다.

관련 문제