3

我有一个包含 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

2 回答 2

4

我不记得这是否可行,但我的第一个冲动是说为根设置 parent_id=NULL。

于 2011-04-07T23:51:29.973 回答
1

弄清楚了。

关键(没有双关语)是使您的 parent_id 可以为空,然后将您的根设置为空。

于 2011-04-07T23:51:45.310 回答