Sql 当外键在同一个表上时,如何在oracle中添加级联删除
我有一个表,其中包含oracle中的一棵树Sql 当外键在同一个表上时,如何在oracle中添加级联删除,sql,oracle,cascade,sql-delete,cascading-deletes,Sql,Oracle,Cascade,Sql Delete,Cascading Deletes,我有一个表,其中包含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) REFE
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.
我记不起这是否有效,但我的第一个冲动是说为根设置parent\u id=NULL。解决了这个问题
关键(并非双关语)是将您的父id设置为空,然后将根设置为空。哦,当然……在我找到答案后,在我发布答案之前发布答案;)