2012-06-12 400 views

回答

3

该提示禁用级联删除,因此从父级删除时,子行不会从子级表中删除。

请看这里的例子;

http://www.oracle-goldengate.info/archives/ogg-replication-for-delete-parent-table-with-fk-delete-cascade-option.html

create table s11 (x int primary key); 
create table s12 (y int primary key, x references s11 on delete cascade); 
insert into s11 values (1); 
insert into s12 values (1, 1); 
commit; 
SQL> delete from s11; 
1 row deleted. 
SQL> select * from s12; 
no rows selected <=========== when deleting parent row in s11, the child row in s12 is also deleted. 

SQL> rollback; 
Rollback complete. 

SQL> delete /*+ RESTRICT_ALL_REF_CONS */ from s11; 
1 row deleted. 
SQL> select * from s12; <=========== with RESTRICT_ALL_REF_CONS hint, the child row will not be deleted. 
Y X 
---------- ---------- 
1 1