ops sorry here is the test code: create table t1 (c1 number, c2 number, c3 number ); create table t2 (c4 number, c1 number, c2 number ); create table t3 (c4 number, c1 number, c2 number ); insert into t1 values(11, 111, 300); insert into t1 values(12, 121, 300); insert into t1 values(13, 131, 300); insert into t2 values(21, 11, 111); insert into t2 values(22, 12, 121); insert into t2 values(23, 11, 111); insert into t2 values(24, 11, 111); insert into t3 values(25, 12, 121); alter table t1 add constraint t1_pk primary key (c1, c2); alter table t2 add constraint t2_pk primary key (c4); alter table t2 add constraint t2_fk1 foreign key (c1, c2) references t1(c1, c2); insert /*+ append */ into t2 select * from t3; -- this insert does not generate MODE 6 lock but if I run alter table t2 enable constraint t2_fk1 it does request in mode 6 Cheers -- //www.freelists.org/webpage/oracle-l