SQL> create table test(id int  PRIMARY KEY, name char(10));
表已创建。
Session 1:
SQL> select * from v$mystat where rownum<2;
       SID STATISTIC#	   VALUE
---------- ---------- ----------
      1165	    0	       0
SQL> select * from test;
未选定行
SQL>  insert into test values(1,'a');
已创建 1 行。
Session 2:
SQL> select * from v$mystat where rownum<2;
       SID STATISTIC#	   VALUE
---------- ---------- ----------
      1174	    0	       0
SQL>  insert into test values(1,'a'); --堵塞
SQL>  select sid,username,machine, BLOCKING_SESSION	,event from  v$session where event='enq: TX - row lock contention';
       SID USERNAME			  MACHINE							   BLOCKING_SESSION EVENT
---------- ------------------------------ ---------------------------------------------------------------- ---------------- ----------------------------------------------------------------
      1174 SYS				  oadb									       1165 enq: TX - row lock contention
1165 堵塞了1174
这是有唯一主键的情况下,
那么没有唯一主键呢?
Sesssion 1:
SQL> create table test2(id int,name char(10));
表已创建。
SQL> insert into test2 values(1,'a');
已创建 1 行。
Session 2:
SQL> insert into test2 values(1,'a');
已创建 1 行。
没有唯一主键,就不会引起行锁