求助!!如何在informix设置跟ORACLE的for update nowait一样的锁?
最近项目在做ORALCE到informix的迁移碰到这个问题很棘手:
informix不支持For UPADTE NOWAIT
小弟找遍了各种资料,就是没法做到跟 For UPADTE NOWAIT一样的效果,不知道有哪位大虾能指点一下? SET LOCK MODE TO NOT WAIT;
我在建表的时候已经制定了lock mode row
但是还是不知道如何实现只锁select出来的语句。迷茫中 本帖最后由 yulihua49 于 2012-06-09 19:53 编辑
Oo烟花火 发表于 2012-02-27 18:56 static/image/common/back.gif
我在建表的时候已经制定了lock mode row
但是还是不知道如何实现只锁select出来的语句。迷茫中
for update是可以用的。不等锁见楼上。
附加一点,行级锁的操作,INFORMIX比ORACLE有很多优势的。
ORACLE 6.0的时候,还声明行级锁不可行,没必要。那时的INFORMIX早已提供了高效,可靠的行级锁操作了。
这是我们当年选择INFOMIX而不选择ORACLE的重要原因。
ORA至今不支持SKIP LOCKED操作(跳过被锁记录)(10G以前支持过,但操作逻辑不正确,11G取消了)。
INFORMIX这个是独门绝技。
本帖最后由 yulihua49 于 2012-06-09 20:00 编辑
Oo烟花火 发表于 2012-02-27 18:56 static/image/common/back.gif
我在建表的时候已经制定了lock mode row
但是还是不知道如何实现只锁select出来的语句。迷茫中
这个是设置行锁。必须的。
select就是用for update,但对于单条语句无效,一定要开游标。
配合隔离级,可以实现读锁,写锁,锁全部活动集,或只锁当前游标指向的记录。(此时两次FETCH就可以跳过被锁的记录)。
不能用滚动游标。
页:
[1]