2011-04-07 52 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 2011-04-07 23:53:12

1

想通了。

键(无双关语意思)是让您的parent_id为空,然后将您的根设置为空。