I have created a test table : TABLE1(ID -> pk, INFO -> varchar2(100)).
I opened the SQL Developer and i changed Pk Deferrable State from "Not Deferrable" to "Initially Deferred". The index of this PK automatically changed from "Unique" to "Non-Unique".
I tested a duplicate insert(same ID) with 2 transactions, T1 and T2 . T1: insert into TABLE1 with ID=1 (no commit) T2: insert into TABLE1 with ID=1 (no commit) => transaction T2 is blocked.
Why T2 is blocked? my PK is"Initially Deferred".
(If i execute a commit in T1, then T2 is no longer blocked and the insert is executed.)