你是不是使用了sequence?sequence中的最大值够不够大?

解决方案 »

  1.   

    select ... for update nowait是获得行级锁,当所选择的数据已经被锁定时就会报错。
      

  2.   

    正常情况下数据库的隔离级别是二级别:读取提交过的数据。如果其他事务更新没提交,则等待
    而在for update中是把隔离级别封装提升到了三级别:查询期间,不允许其他事务update
      

  3.   

    楼上答非所问。我的问题是,为什么事务不是手动提交就报这个错,手动提交就不报这个错,难道使用for update就一定要手动提交事务吗
      

  4.   

    虽然没分了!还是说一句吧!
    这个和for update以及自动提交都没有直接关系,而是这两个交叉产生的问题。
    当你运行了一次没有自动提交就close的查询后,无论再次运行的时候使用了再次提交没有都会报出错误!